Sortiranje mehurom — разлика између измена
Садржај обрисан Садржај додат
spajanje |
|||
Ред 1:
{{Infobox Algorithm-lat
|class=[[Algoritam sortiranja]]
|image=[[Датотека:Bubblesort-edited-color.svg|
|data=[[Array data structure|Niz]]
|best-time= <math>O(n)</math>
|average-time= <math>O(n^2)</math>
|time=<math>O(n^2)</math>
|space=<math>O(1)</math>
|optimal=No
}}
'''Sortiranje mehurom''' ili ''Bablsort'' ({{jez-eng-lat|Bubble sort}}), ponekad pogrešno nazvano ''potapajuće sortiranje'', [[algoritam]] je koji se koristi za [[Algoritmi sortiranja|sortiranje nizova]]. Algoritam radi tako što upoređuje svaka dva susedna člana niza i zamenjuje im mesta, ako su članovi niza u pogrešnom redosledu. Prolazi se kroz niz elemenata sve dok se ne izvrši nijedna zamena tj. elementi su sortirani u odgovarajućem poretku (rastućem ili opadajućem). Naziv vodi poreklo od činjenice da se posle prve iteracije kroz niz najveći element nalazi na najvećoj poziciji u nizu, tj. na desnoj strani niza. Algoritam je veoma lak za implementaciju u svim programskim jezicima, ali je veoma nepraktičan i spor čak i kada se uporedi sa algoritmom kao što je [[Sortiranje umetanjem|sortiranje umetanjem]].<ref name="Knuth">{{cite book |author= Donald Knuth |volume= 3: ''Sorting and Searching'' |edition= Second |publisher= Addison-Wesley |date= 1998 |id= ISBN 0-201-89685-0 |pages= 106-110 |title= [[The Art of Computer Programming]], section 5.2.2: Sorting by Exchanging |quote= "[A]lthough the techniques used in the calculations [to analyze the bubble sort] are instructive, the results are disappointing since they tell us that the bubble sort isn't really very good at all. Compared to straight insertion […], bubble sorting requires a more complicated program and takes about twice as long!" (Quote from the first edition, 1973.) }}</ref> Algoritam radi dobro na nizovima koji ima mali broj elemenata, ili koji su polusortirani, tj. samo određeni broj elemenata je na nepravilnim pozicijama.
== Analiza ==
[[Датотека:Bubble-sort-example-300px.gif|300px|мини|right|Primer bubble sorta. Polazi se od početka niza, uproredjuje svaki susedni par i menja njihov položaj, ako nisu u pravom redosledu (sledeći je manji od prethodnog). Posle svake iteracije, upoređuje se jedan element manje, sve dok više ne postoje elementi koje treba upoređivati.]]
===
Jedina značajna prednost
=== Zečevi i kornjače ===
Pozicije elemenata u
Učinjeni su razni napori
=== Korak po korak primer ===
Niz brojeva "5 1 4 2 8" potrebno je sortirati od najmanjeg do najvećeg broja (u rastućem poretku) pomoću
Линија 71 ⟶ 80:
end procedure
</source>
Da podsetimo, postoje bolji algoritmi za sortiranje kao što je [[
=== Optimizacija bubble sorta ===
<source lang="pli">
Линија 92 ⟶ 101:
</source>
Uopšteno, može se desiti da se više od jednog elementa nalazi u završnoj poziciji u jednom prolazu. Konkretno, posle svakog prolaza, svi elementi do poslednje zamene su sortirani i ne treba ih ponovo proveravati. To nam omogućava da se presoči mnogo elemenata, što dovodi do u najgorem slučaju 50% poboljšanja i dodaje malo složenosti, jer novi kod podvodi
Линија 112 ⟶ 121:
</source>
Alternativne modifikacije, kao što je [[
== U praksi ==
[[Датотека:Bubble sort animation.gif|мини|right|280px|
Iako je
Zbog svoje jednostavnosti,
The [[Jargon file]], čiji je poznati naziv [[
U kompjuterskoj grafici je popularan zbog njegove sposobnosti da otkrije veoma malu grešku (kao zamenu samo dva elementa) u skorosortiranim nizovima i popraviti je sa linearnom složenošću (-{2n}-).
== Varijacije ==
* [[
* [[
* U nekim slučajevima, sortiranje se vrši sa desna na levo (u suprotnom smeru) koji je pogodniji za delimično sortirane nizove, odnosno nizove sa nesortiranim elementima na kraju.
== Pogrešan naziv ==
== Reference ==
Линија 142 ⟶ 149:
== Literatura ==
{{refbegin}}
* {{cite book|author=
* {{cite book|author= Thomas H. Cormen |author2= Charles E. Leiserson |author-link3= Роналд Лин Ривест |author3= Ronald L. Rivest |author4= Clifford Stein |title=[[Introduction to Algorithms]]|location=|publisher=Second Edition. MIT Press and McGraw-Hill|year=2001|isbn=978-0-262-03293-3|pages=}} Problem 2-2, pg.38.
* [https://www.cs.tcd.ie/publications/tech-reports/reports.05/TCD-CS-2005-57.pdf Sorting in the Presence of Branch Prediction and Caches]
* {{cite book|author=Ellis Horowitz
* Алгоритми и структуре података - Мило Томашевић
* Увод у програмирање - Милан Шкарић
{{refend}}
== Spoljašnje veze ==
Линија 153 ⟶ 164:
* {{cite web | url=https://www.toptal.com/developers/sorting-algorithms |title = Animated Sorting Algorithms: Bubble Sort |last=Toptal}} – -{graphical demonstration and discussion of bubble sort}-
* {{cite web | url= http://lecture.ecc.u-tokyo.ac.jp/~ueda/JavaApplet/BubbleSort.html |title= Lafore's Bubble Sort}} (Java applet animation)
{{Authority control-lat}}
[[Категорија:Алгоритми сортирања]]
[[Категорија:Низови]]
[[Категорија:Сортирање поређењем]]
[[Категорија:Стабилно сортирање]]
|