Documente Academic
Documente Profesional
Documente Cultură
insertion
Straight selection
Sortarea selecției se referă la o clasă de algoritmi pentru sortarea unei liste de elemente folosind
comparații. Acești algoritmi selectează din listă articole mai mici sau mai mari și le adaugă la
secvența de ieșire. Selectarea dreaptă este un membru O (n 2 ) al clasei în care scanăm în mod
repetat elementele rămase nesortate din listă în timp liniar, găsim cel mai mare (sau cel mai mic) și îl
adăugăm la rezultat. Deoarece privește toate datele neprocesate de pe fiecare trecere, nu are rezultate
mai bune pentru intrările aproape sortate decât pentru intrările aleatorii sau sortate invers, spre
deosebire de sortarea inserției.
Versiunea din această demonstrație face N-1 trece, găsind indicele celui mai mare element nesortat
de fiecare dată, și apoi schimbând cel mai mare articol nesortat cu ultimul element nesortat - mutând
astfel cel mai mare element rămas în poziție pe fiecare trecere. La fiecare trecere, elementele căutate
pentru maxim sunt afișate în verde, cu elementul maxim indicat de un "V" de mai sus. Elementele
încă neexaminate și nesortate sunt arătate în roz.
Rapid Încet
Alegeți
Introducere
Sortare Dimensiunea de intrare:
intrare
Initial array:301013789421215116Array:30101378942121
Straight insertion
Acesta este un algoritm de sortare bazat pe comparație. Aici, este menținută o sub-listă
care este întotdeauna sortată. De exemplu, partea inferioară a unui tablou este menținută
pentru a fi sortată. Un element care urmează să fie „inserat” în această sub-listă sortată
trebuie să își găsească locul potrivit și apoi trebuie să fie introdus acolo. De aici
numele, sortarea inserției .
Matricea este căutată secvențial și articolele nesortate sunt mutate și introduse în sub-
lista sortată (în același tablou). Acest algoritm nu este potrivit pentru seturi de date mari,
deoarece complexitatea sa medie și cea mai proastă situație sunt de Ο (n 2 ), unde n este
numărul de elemente.
Așa că le schimbăm.
Cu toate acestea, schimbarea face 27 și 10 nesortate.
Le schimbăm din nou. Până la sfârșitul celei de-a treia iterații, avem o sub-listă sortată de
4 articole.
Acest proces continuă până când toate valorile nesortate sunt acoperite într-o sub-listă
sortată. Acum vom vedea câteva aspecte de programare ale sortării inserției.
Algoritmul
Acum avem o imagine mai mare a modului în care funcționează această tehnică de
sortare, astfel încât putem deriva pași simpli prin care putem realiza sortarea de inserție.
Step 1 − If it is the first element, it is already sorted. return 1;
Step 2 − Pick next element
Step 3 − Compare with all elements in the sorted sub-list
Step 4 − Shift all the elements in the sorted sub-list that is greater
than the
value to be sorted
Step 5 − Insert the value
Step 6 − Repeat until list is sorted
Pseudo cod
procedure insertionSort( A : array of items )
int holePosition
int valueToInsert
end for
end procedure