Quicksort: Rozdiel medzi revíziami

Smazaný obsah Přidaný obsah
typografia
Daevid (diskusia | príspevky)
presunuté z Quick sort
Riadok 8:
Najväčším problémom celého algoritmu je voľba pivotu. Ak sa podarí zvoliť číslo blízke [[medián|mediánu]] triedenej časti poľa, je algoritmus najrýchlejší. Ak nie, je jeho pamäťová a časová náročnosť vyššia ako pri všetkých ostatných algoritmoch.
 
== Implementácie ==
=== C ===
<syntaxhighlight lang="c">
//Quicksort the array
Řádek 95 ⟶ 97:
}
</syntaxhighlight>
 
=== Java ===
public static void quicksort(int[] array, int left, int right){
if(left < right){
int boundary = left;
for(int i = left + 1; i < right; i++){
if(array[i] > array[left]){
swap(array, i, ++boundary);
}
}
swap(array, left, boundary);
quicksort(array, left, boundary);
quicksort(array, boundary + 1, right);
}
}
 
private static void swap(int[] array, int left, int right){
int tmp = array[right];
array[right] = array[left];
array[left] = tmp;
}
 
=== C++ ===
void quicksort(int array[], int left, int right){
if(left < right){
int boundary = left;
for(int i = left + 1; i < right; i++){
if(array[i] > array[left]){
swap(array, i, ++boundary);
}
}
swap(array, left, boundary);
quicksort(array, left, boundary);
quicksort(array, boundary + 1, right);
}
}
 
void swap(int array[], int left, int right){
int tmp = array[right];
array[right] = array[left];
array[left] = tmp;
}
 
 
=== C# ===
public static void Quicksort(int[] array, int left, int right)
{
if (left < right)
{
int boundary = left;
for (int i = left + 1; i < right; i++)
{
if (array[i] > array[left])
{
Swap(array, i, ++boundary);
}
}
Swap(array, left, boundary);
Quicksort(array, left, boundary);
Quicksort(array, boundary + 1, right);
}
}
 
private static void Swap(int[] array, int left, int right)
{
int tmp = array[right];
array[right] = array[left];
array[left] = tmp;
}
 
== Iné projekty ==