WIP: shellsort
This commit is contained in:
@@ -185,6 +185,27 @@ void ulepszone_sortowanie_babelkowe(int* tablica, int rozmiar)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void sortowanie_shella(int* tablica, int rozmiar)
|
||||||
|
{
|
||||||
|
int h = 0;
|
||||||
|
while(h<rozmiar/9){
|
||||||
|
h=3*h+1;
|
||||||
|
}
|
||||||
|
while(h>0){
|
||||||
|
for (int i=h+1; i<rozmiar; i++){
|
||||||
|
int x = tablica[i];
|
||||||
|
int j = i;
|
||||||
|
while ( (j >= h+1) && (x< tablica[j-h])){
|
||||||
|
tablica[j]=tablica[j-h];
|
||||||
|
j=j-h;
|
||||||
|
}
|
||||||
|
tablica[j]=x;
|
||||||
|
}
|
||||||
|
h=h/3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
setlocale(LC_ALL, "");
|
setlocale(LC_ALL, "");
|
||||||
@@ -192,10 +213,11 @@ int main()
|
|||||||
|
|
||||||
//std::ostream& output = wyniki;//std::cerr; // Wypisanie do pliku (zamiast na ekran)
|
//std::ostream& output = wyniki;//std::cerr; // Wypisanie do pliku (zamiast na ekran)
|
||||||
std::ostream& output = std::cerr; // Wypisanie na ekran
|
std::ostream& output = std::cerr; // Wypisanie na ekran
|
||||||
eksperyment(ulepszone_sortowanie_babelkowe, "Ulepszone sortowanie bąbelkowe", output);
|
eksperyment(sortowanie_shella, "Sortowanie shella", output);
|
||||||
eksperyment(sortowanie_babelkowe, "Sortowanie bąbelkowe", output);
|
// eksperyment(ulepszone_sortowanie_babelkowe, "Ulepszone sortowanie bąbelkowe", output);
|
||||||
eksperyment(sortowanie_wstawianie, "Sortowanie przez proste wstawianie", output);
|
// eksperyment(sortowanie_babelkowe, "Sortowanie bąbelkowe", output);
|
||||||
eksperyment(sortowanie_wybieranie, "Sortowanie przez proste wybieranie", output);
|
// eksperyment(sortowanie_wstawianie, "Sortowanie przez proste wstawianie", output);
|
||||||
|
// eksperyment(sortowanie_wybieranie, "Sortowanie przez proste wybieranie", output);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user