BubbleSort
SelectionSort
Insertion sort:
Merge sort
// BubbleSort System.out.println("BubbleSort"); for (int i=0; i<data.length-1; i++){ for (int j=0; j<data.length-1-i;j++){ if (data[j] > data[j+1]) { int temp = data[j]; data[j]= data[j+1]; //swap data[j+1]=temp; } } }
- mało efektywny z uwagi na podwójny loop
- tylko do małych data sets
- efektywność O(n^2)
SelectionSort
- raczej wolny algorytm z uwagi na podwójny loop
- małe data set
- efektywność O(n^2)
System.out.println("SelectionSort"); int i,j,minV,minI,temp=0; for(i=0; i<data.length;i++){ minV = data[i]; minI = i; for (j=i;j<data.length;j++){ if(data[j]<minV){ minV=data[j]; minI=j; } }
//swap if(minV<data[i]){ temp=data[i]; data[i]=data[minI]; data[minI]=temp; } }
Insertion sort:
- przesuwa key do momentu spełnienia warunku z while
- raczej wolny algorytm z uwagi na podwójny loop
- małe data set
- efektywność O(n^2)
System.out.println("InsertionSort"); long startTimeInsertSort = System.nanoTime(); for (int k=1;k<data.length;k++){ int key = data[k]; int m = k-1; while (m>0&& key<data[m]){ int temp2 = data[m]; data[m]=data[m+1]; data[m+1]=temp; m--; } }
Merge sort
- metoda sortująca rekursywna metoda wywołuje samą siebie
- efektywna dla duzych zbiorów
Komentarze
Prześlij komentarz