1 / 8

Algoritmy řazení

Algoritmy řazení. Přímé zatřiďování. Vstup: posloupnost a1, a2,..., an Výstup: seřazená posloupnost b1, b2,..., bn Polož počítadlo:=1 Dokud není počítadlo = n+1 dělej Najdi nejmenší prvek v posloupnosti a1, a2,..., an, označ ho ai Vlož ai na pozici b počítadlo

celina
Download Presentation

Algoritmy řazení

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Algoritmy řazení

  2. Přímé zatřiďování Vstup: posloupnost a1, a2,..., an • Výstup: seřazená posloupnost b1, b2,..., bn • Polož počítadlo:=1 • Dokud není počítadlo = n+1 dělej • Najdi nejmenší prvek v posloupnosti a1, a2,..., an, označ ho ai • Vlož ai na pozici bpočítadlo • Vyřaď ai z posloupnosti a1, a2,..., an • Zvětši počítadlo o 1

  3. Složitost přímého zatřiďování • n x n cyklů • Složitost je Θ(n2)

  4. Bublinkové řazení (bubblesort) Vstup: posloupnost a1, a2,..., an • Výstup: seřazená posloupnost b1, b2,..., bn • Opakuj dokud dochází ke změnám • Pro i = 1 až n-1 opakuj • Pokud je ai větší než ai+1 prohoď tyto dva prvky VARIANTA Vstup: posloupnost a1, a2,..., an • Výstup: seřazená posloupnost b1, b2,..., bn • Vlož n-1 do KONEC_PROHLEDAVANI • Opakuj dokud dochází ke změnám • Pro i = 1 až KONEC_PROHLEDAVANI-1 opakuj • Pokud je ai větší než ai+1 prohoď tyto dva prvky • Zmenši KONEC_PROHLEDAVANI o 1

  5. Složitost Bublinkového řazení • V prvním cyklu n-1 průchodů, v dalším n-2, atd. • Celkem n . (n-1) / 2 cyklů • Složitost je Θ(n2)

  6. Řazení sléváním (mergesort) Vstup: posloupnost a1, a2,..., an • Výstup: seřazená posloupnost b1, b2,..., bn • Posloupnost a1,a2,...,an rozděl na posloupnost l1,...,lm =a1,...,am • a p1,..., pk = am+1, ..., an, kde m je horní celá část z n / 2 • Pokud m > 1 seřaď l1,...,lm algoritmem mergesort • Pokud k > 1 seřaď p1,...,pk algoritmem mergesort • Vlož 1 do proměnných i a j • Dokud je i menší nebo rovno než m a j menší nebo rovno než k opakuj • Pokud je li menší než pj • Do posloupnosti b vlož li • Zvětši i o 1 • Jinak • Do posloupnosti b vlož pj • Zvětši j o 1 • Pokud je i větší než m • Doplň posloupnost b zbytkem posloupnosti p • Jinak • Doplň posloupnost b zbytkem posloupnosti l

  7. Složitost mergesortu • ln2n cyklů o n porovnáních • Složitost je Θ(n.ln n) • Nezáleží na základě logaritmu

  8. Porovnání složitostí 10 100 23,02585 0,0001 2,30259E-05 20 400 59,91465 0,0004 5,99146E-05 50 2500 195,6012 0,0025 0,000195601 100 10000 460,517 0,01 0,000460517 1000 1000000 6907,755 1 0,006907755 10000 1E+08 92103,4 1 min 40 s 0,092103404 1000000 1E+12 13815511 11,5 dne 13,81551056 10000000 1E+14 1,61E+08 3 000 000 let 2 min 40 s

More Related