Narzędzia użytkownika

Narzędzia witryny


sort

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Previous revision
Next revision
Previous revision
sort [2008/12/10 21:26]
czarek
sort [2008/12/10 22:08]
czarek
Linia 1: Linia 1:
 ====== Biblioteka stl, opis algorytmu : sort ====== ====== Biblioteka stl, opis algorytmu : sort ======
  
-Algorytm sort należący do biblioteki STL umożliwia nam wydajne sortowanie dowolnych zbiorów elementów tego samego typu. Są dwie wersje algorytmu. ​+Algorytm sort należący do biblioteki STL umożliwia nam wydajne sortowanie dowolnych zbiorów elementów tego samego typu. Są dwie wersje algorytmu ​różniące się ilością parametrów. Algorytm sort biblioteki STL znjaduje się w komponencie **algorytm** dlatego jeśli chcemy używać tego algorytmu należy dołączyć plik nagłówkowy <​algorytm>​.
  
-===== sort(first,​last) - pierwsza ​wersja pobierająca dwa argumenty. =====+<code cpp> 
 +#include <​algorithm>​ 
 +</​code>​ 
 + 
 +===== sort(first,​last) - wersja ​algorytmu ​pobierająca dwa argumenty. =====
  
 <code cpp> <code cpp>
Linia 12: Linia 16:
 Parametry odpowiednio oznaczają pierwszy i ostatni element pomiędzy którymi mają one zostać posortowane. Element **first** znajduje się z w zbiorze elementów sortowanych,​ a element **last** już nie – **[first, last)**. Do porównywania elementów używany jest operator "<"​ , którego działanie możemy dowolnie ​ przeładować dla obiektów sortowanych. ​ Parametry odpowiednio oznaczają pierwszy i ostatni element pomiędzy którymi mają one zostać posortowane. Element **first** znajduje się z w zbiorze elementów sortowanych,​ a element **last** już nie – **[first, last)**. Do porównywania elementów używany jest operator "<"​ , którego działanie możemy dowolnie ​ przeładować dla obiektów sortowanych. ​
  
-Przykład użycia algorytmu sort z dwoma parametrami na całej tablicy typu int:+=== Przykład użycia algorytmu sort z dwoma parametrami na całej tablicy typu int ===
 <code cpp> <code cpp>
 int a[8] = {5, 29, 1, -40, -17, 65, 100, -100}; int a[8] = {5, 29, 1, -40, -17, 65, 100, -100};
Linia 19: Linia 23:
 </​code>​ </​code>​
  
-Przykład użycia algorytmu sort z dwoma parametrami na tablicy typu int. Sortowanie elementów [2,7):+=== Przykład użycia algorytmu sort z dwoma parametrami na tablicy typu int. Sortowanie elementów [2,7) ===
 <code cpp> <code cpp>
 int b[8] = {5, 29, 1, -40, -17, 65, 100, -100}; int b[8] = {5, 29, 1, -40, -17, 65, 100, -100};
Linia 26: Linia 30:
 </​code>​ </​code>​
  
-Przykład sortowania obiektów typu string:+=== Przykład sortowania obiektów typu string ​===
 <code cpp> <code cpp>
 vector <​string>​ v1; vector <​string>​ v1;
Linia 44: Linia 48:
 </​code>​ </​code>​
  
-===== sort(first, last, comp) - druga wersja algorytmu pobierająca dodatkowo trzeci parametr. =====+===== sort(first, last, comp) - wersja algorytmu pobierająca dodatkowo trzeci parametr. =====
  
 <code cpp> <code cpp>
Linia 53: Linia 57:
 Ostatni parametr oznacza obiekt lub funkcję, która zostanie wykorzystana do porównywanie elementów podczas sortowania. Argumentami tej funkcji są dwa elementy ze zbioru tego samego typu. Zwraca ona true jeśli pierwszy element ma się znaleźć przed drugim i false w przeciwnym ​ wypadku. Jeśli w sortowanym zbiorze będą elementy równe to nie ma pewności na to że zostaną one w oryginalnej kolejności. Do porównania elementów może zostać również wykorzystany obiekt. Ostatni parametr oznacza obiekt lub funkcję, która zostanie wykorzystana do porównywanie elementów podczas sortowania. Argumentami tej funkcji są dwa elementy ze zbioru tego samego typu. Zwraca ona true jeśli pierwszy element ma się znaleźć przed drugim i false w przeciwnym ​ wypadku. Jeśli w sortowanym zbiorze będą elementy równe to nie ma pewności na to że zostaną one w oryginalnej kolejności. Do porównania elementów może zostać również wykorzystany obiekt.
  
-Przykład użycia algorytmu sort z trzema parametrami. Do porównania ​tych obiektów ​zostanie wykorzystana funkcja ​porownajMocSamochodow():​ +=== Przykład użycia algorytmu sort z trzema parametrami. Do porównania ​elementów ​zostanie wykorzystana funkcja ​===
-<code cpp> +
-bool porownajMocSamochodow(Samochod s1, Samochod s2) {  +
-    if (s1.moc < s2.moc) return true; +
-    else return false;  +
-+
-</​code>​+
 <code cpp> <code cpp>
 vector <​Samochod>​ v2; vector <​Samochod>​ v2;
Linia 72: Linia 70:
  */  */
 </​code>​ </​code>​
- +Przykładowa funkcja porównująca dwa obiektu ​typu samochód pod względem mocy silnika:
-Przykład użycia ​obiektu ​do porównywania elementów podczas sortowania:+
 <code cpp> <code cpp>
-struct KlasyfikatorCenowy { +bool porownajMocSamochodow(Samochod s1, Samochod s2) {  
-  ​bool operator() ​(Samochod s1, Samochod s2) {  +    if (s1.moc < s2.moc) return true; 
-      if (s1.cena < s2.cena) return true; +    else return false;  
-      else return false; +}
-  } +
-} mojKlasyfikatorCenowy;​+
 </​code>​ </​code>​
 +
 +=== Przykład użycia algorytmu sort z trzema parametrami. Do porównywania elementów zostanie wykorzystana struktura ===
 <code cpp> <code cpp>
 vector <​Samochod>​ v2; vector <​Samochod>​ v2;
Linia 94: Linia 91:
  */  */
 </​code>​ </​code>​
 +Przykładowa struktura porównująca dwa obiekty typu samochód pod względem ceny:
 +<code cpp>
 +struct KlasyfikatorCenowy {
 +  bool operator() (Samochod s1, Samochod s2) { 
 +      if (s1.cena < s2.cena) return true;
 +      else return false;
 +  }
 +} mojKlasyfikatorCenowy;​
 +</​code>​
 +
 +===== Przykładowy program wykorzystujący różne warianty algorytmu sort =====
 +{{stl_sort.cpp}}
sort.txt · ostatnio zmienione: 2008/12/10 22:08 przez czarek