Valiksortimine: erinevus redaktsioonide vahel

Eemaldatud sisu Lisatud sisu
Nene (arutelu | kaastöö)
+sisukord
P parandasin skripti abil kriipsud
1. rida:
'''Valikuga sortimine''' on [[sortimisalgoritm]], täpsemalt on tegu võrdlussortimisega. Ta omab <math>O(n^2)</math> [[efektiivsusfaktor]]it, sõltumata sisendandmete järjestusest, olles nõnda ebaefektiivne suurte hulkade korral, ning üldjuhul annab halvemaid või sarnaseid tulemusi kui samalaadne [[vahelepanemisega sortimine|vahelepanekuga sortimine]]. Valikuga sortimist loetakse üheks lihtsaimaks sortimisalgoritmiks ning teatud olukordades võib ta olla efektiivsem kui mõni keerulisem algoritm.
 
[[Image:Selection-Sort-Animation.gif|right|thumb|Valikuga sortimine - animatsioon]]
 
==Algortim==
38. rida:
Teine suur erinevus on, et valikuga sortimine sooritab alati <math>O(n)</math> vahetust, kui vahelepanekuga sortimine sooritab <math>O(n^2)</math> vahetust nii halvimal kui ka keskmisel juhul. Kuna vahetused nõuavad loendisse kirjutamist, siis valikuga sortimine on eelistatav, kui mällu kirjutamine on palju ressursinõudlikum kui lugemine. See on sageli nii, kui loend on lühike, aga elemendid on väga suured. Pole ühtegi vähem andmeid liigutavat [[sortimisalgoritm|sortimisalgoritmi]]
 
Valikuga sortimine on suurte loendite korral kõvasti nõrgem [[jaga-ja-valitse]] tüüpi algortimidest nagu [[kiirsortimine]]. Siiski on valikuga sortimine või vahelepanekuga sortimine tüüpiliselt kiiremad väikeste loendite korral (vähem kui 10-2010–20 elementi). Kasulik optimeering [[rekursioon|rekursiivsete]] sortimisalgoritmide jaoks on kasutada valikuga sortimist või vahelepanekuga sortimist piisavalt väikesete alamloendite korral.
 
== Implementatsioon ==