3.2.2 Levinumad sortimis- ja otsimisalgoritmid ning andmestruktuurid

Märgatav osa arvutite tööajast kulub andmete otsimisele ja sortimisele, ehkki on ka muid vajalikke algoritme (graafidega seonduv näiteks). Sõltuvalt andmete ülesehitusest, eelnevast järjestusest, andmekandjast, päringute sagedusest ja tüübist ning kasutatavast mäluhulgast on sortimiseks ja otsimiseks loodud kümneid algoritme.
Mullsortimise puhul vahetatakse järjest ära kõrvuti asetsevad väärtused sobivasse suunda. Sobib juhul, kui andmestik on peaaegu sorditud, on ainult üksikud erinevused lähestikku seisvate väärtuste seas. Segamini suurema andmestiku puhul tegemist väga aeglase algoritmiga. Lihtne programmeerida.
Valiksortimise puhul otsitakse iga ringi puhul olemasolevate hulgast välja vähim ning tõstetakse ta sobivale kohale. Algoritmi tööaeg ei sõltu andmete eelnevast.
Põhilisteks programmeerimise juures kasutatavateks tüüpideks on tekst (string), täisarv ning reaalarv (komaga arv). Kusjuures näiteks telefoninumber on sageli mõistlik talletada tekstina, sest täisarvul on pikkusepiirang. Struktuurtüüpi on põhjust kasutada siis, kui väärtus ise jaguneb alamosadeks ning neid võib olla vajadust eraldi kasutada. Näiteks aadress võiks olla kirje, kus eraldi väljadeks indeks, linn, tänav. Massiivis on andmed üldjuhul ühte tüüpi, näiteks aadresside loetelu võib olla massiiv. Massiivide puhul on üldjuhul hea teada elementide maksimaalarv. Kui vaja väärtusi keskele või lõppu lisada, siis on paindlikuma ülesehitusega ahelloendid selle tarbeks paremad.
Kahe väärtuse vahetamiseks on üldjuhul tarvis kolmandat kohta vahepealseks hoidmiseks - ilma toetuspunktita on päris raske käes olevat arbuusi ja melonit vahetada.
Lisalugemist:
http://www.cs.tlu.ee/~inga/alg_andm/sorting_Python.pdf