Bilo koji slijed podataka iste vrste može se predstaviti kao popis. Popisi se mogu poredati i neurediti. U potonjem slučaju rad s podacima, pronalaženje željene vrijednosti i pristup elementima popisa uzrokuju određene poteškoće. Popis varijabli niza obično se sortira po abecedi. Postoji mnogo metoda sortiranja, u svakom biste slučaju trebali odabrati najoptimalniji algoritam.
Upute
Korak 1
Pri odabiru najbolje metode sortiranja, treba uzeti u obzir dvije stvari: vrijeme potrebno za operaciju sortiranja i količinu memorije potrebne za pomoćno skladištenje. Algoritmi za sortiranje koji ne zahtijevaju dodatnu memoriju nazivaju se sortiranjem "na mjestu". Jedno od najjednostavnijih za primjenu je polako razvrstavanje oblačića koji skenira svaki par stavki na popisu i mijenja mjesta ovisno o željenom redoslijedu.
Korak 2
Postoji brža metoda sortiranja pronalaženjem minimalne ili maksimalne stavke na popisu. U slučaju sortiranja po abecedi, svaki put kad prođete kroz popis, morate pronaći njegov maksimalni element - to će biti niz koji započinje slovom najbližim početku abecede. Jednom pronađen, niz se zamijeni s prvom stavkom na popisu pri prvom prolazu. Daljnjim razmatranjem popisa prvo mjesto se isključuje, traži se sljedeći maksimalni element, postavlja se na drugo mjesto itd. Kôd programa za sortiranje u C ++ metodom pronalaženja maksimalnog elementa popisa: String Arr [20], cTemp; int N = 20, Max, Pos; for (int i = 0; i <N- 1; i ++) {Max = Arr ; Poz = i; za (int j = 0; j <N; j ++) {if (Arr [j] <Max) {Max = Arr [j]; Poz = j; } cTemp = Arr ; Arr = Arr [Pos]; Arr [Pos] = cTemp; }}
3. korak
Najoptimalnije rješenje za poredak podataka niza na popisu je sortiranje umetanja. Njegova je suština u činjenici da pri svakom prolasku kroz popis postoji uređeni dio popisa određenog broja elemenata, pa se sljedeći element koji se razmatra postavlja na prikladno mjesto na popisu. C ++ kôd algoritma za sortiranje umetanja: String Arr [20], cTemp; int N = 20; for (int i = 1, j = 0; i <N; i ++) {cTemp = Arr ; j = i - 1; dok je (cTemp <Arr [j]) {Arr [j + 1] = Arr [j]; j--; ako je (j <0) prekid; Arr [j + 1] = cTemp; }}