Jak Začít?

Máš v počítači zápisky z přednášek
nebo jiné materiály ze školy?

Nahraj je na studentino.cz a získej
4 Kč za každý materiál
a 50 Kč za registraci!




Jednoduché řadicí algoritmy (řazení primitivních datových typů, problematika řazení objektů)

PDF
Stáhnout kompletní materiál zdarma (259.33 kB)

Níže je uveden pouze náhled materiálu. Kliknutím na tlačítko 'Stáhnout soubor' stáhnete kompletní formátovaný materiál ve formátu PDF.

Nevýhodou  tohoto  algoritmu  je,  že  nachází-li  se  na  vstupu  již  částečně  setříděná  posloupnost, 
algoritmus takový fakt ignoruje a proběhne vždy maximální počet kroků. 

Popis algoritmu v krocích: 

1.  v posloupnosti  je  nalezen  nejmenší  prvek  a  je  vyměněn  s prvkem  na  první  pozici,  čímž 

dojde  k rozdělení  posloupnosti  na  dvě  části;  setříděná  část  zatím  obsahuje  pouze  jeden 
prvek, nesetříděná n-1 

2.  v nesetříděné části se opět najde nejmenší prvek a je vyměněn s prvkem na první pozici 

nesetříděné části, čímž dojde však zároveň k zařazení prvku do části setříděné 

3.  obsahuje-li nesetříděná část více než jeden prvek, pokračuje se, od bodu dva, jinak je třídění 

ukončeno 

public static void SelectionSort(int[] array) { 
    for (int i = 0; i < array.Length - 1; i++) { 

PAD Programování a databáze 

Téma 22 

Školní rok 2017/2018 

2/2 

Jan Švábík, V4D 

        int maxIndex = i; 
        for (int j = i + 1; j < array.Length; j++) { 
            if (array[j] > array[maxIndex]) maxIndex = j; 
        } 
        int tmp = array[i]; 
        array[i] = array[maxIndex]; 
        array[maxIndex] = tmp; 
    } 

Insert sort (přímé vkládání) 

Pole se dělí na setříděný a nesetříděný úsek. Na začátku je setříděný úsek tvořen pouze prvním 
prvkem  pole.  První  prvek  nesetříděného  úseku  se  vždy  zařadí  podle  velikosti  do  setříděného 
úseku, čímž se úsek nesetříděný zleva zkrátí o jeden prvek.  

public static void insertSort(int[] array) { 
    for (int i = 0; i < array.length - 1; i++) { 
        int j = i + 1; 
        int tmp = array[j]; 
        while (j > 0 && tmp > array[j-1]) { 
            array[j] = array[j-1]; 
            j--; 
        } 
        array[j] = tmp; 
    } 

Témata, do kterých materiál patří