Share to: share facebook share twitter share wa share telegram print page

Shell sort

Shell sort algoritmus farebné pruhy

Shell sort je kvadratický triediaci algoritmus podobný insertion sortu. Aj keď má tiež zložitosť O(n^2), tak je z algoritmov tohoto typu najvýkonnejší.

Algoritmus

Tento kód je napísaný v programovacom jazyku C++.

int * shellSort(int * array, int size) {
   int gap = size / 2;
   while (gap > 0) { //dokud mame co porovnavat
       for (int i = 0; i < size - gap; i++) { //upraveny insertion sort
           int j = i + gap;
           int tmp = array[j];
           while (j >= gap && tmp > array[j - gap]) {
               array[j] = array[j - gap];
               j -= gap;
           }
           array[j] = tmp;
       }
       if (gap == 2) { //zmena velikosti mezery
           gap = 1;
       } else {
           gap /= 2.2;
       }
   }
   return array;
}
Prefix: a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9

Portal di Ensiklopedia Dunia

Kembali kehalaman sebelumnya