Aynı türden herhangi bir veri dizisi bir liste olarak gösterilebilir. Listeler sıralı ve sırasız olabilir. İkinci durumda, verilerle çalışmak, istenen değeri bulmak ve listenin öğelerine erişmek bazı zorluklara neden olur. Dize değişkenlerinin listesi genellikle alfabetik olarak sıralanır. Birçok sıralama yöntemi vardır, her durumda en uygun algoritmayı seçmelisiniz.
Talimatlar
Aşama 1
En iyi sıralama yöntemini seçerken dikkate alınması gereken iki şey vardır: sıralama işlemi için geçen süre ve yardımcı depolama için gereken bellek miktarı. Ek bellek gerektirmeyen sıralama algoritmalarına "yerinde" sıralamalar denir. Uygulanması en kolay olanlardan biri, listedeki her bir öğe çiftini tarayan ve istenen sıraya göre yerleri değiştiren yavaş bir baloncuk sıralamasıdır.
Adım 2
Listedeki minimum veya maksimum öğeyi bularak daha hızlı bir sıralama yöntemi vardır. Alfabetik olarak sıralama durumunda, listeyi her gözden geçirdiğinizde, maksimum öğesini bulmanız gerekir - bu, alfabenin başına en yakın harfle başlayan bir dize olacaktır. Bir kez bulunduğunda, dize, ilk geçişte listedeki ilk öğeyle değiştirilir. Listenin daha fazla değerlendirilmesi üzerine, ilk sıra hariç tutulur, bir sonraki maksimum eleman aranır, ikinci sıraya yerleştirilir, vb. Listenin maksimum öğesini bulma yöntemiyle sıralama programının C++ dilindeki kodu: String Arr [20], cTemp; int N = 20, Max, Pos; for (int i = 0; i <N- 1; ben ++) {Maks = Varış [ben]; konum = ben; for (int j = 0; j <N; j ++) {if (Arr [j] <Max) {Max = Arr [j]; konum = j; } cTemp = Varış ; Varış = Varış [Konum]; Varış [Konum] = cTemp; }}
Aşama 3
Bir listedeki dize verilerini sıralamak için en uygun çözüm, eklemeli sıralamadır. Özü, listeden her geçişte, listenin belirli sayıda öğeden oluşan sıralı bir parçasının olması ve böylece, incelenen bir sonraki öğenin listede uygun bir yere yerleştirilmesidir. Ekleme sıralama algoritmasının C++ kodu: String Arr [20], cTemp; int N = 20; for (int i = 1, j = 0; i <N; i ++) {cTemp = Arr ; j = ben - 1; while (cTemp <Arr [j]) {Arr [j + 1] = Varr [j]; J--; (j <0) kırılırsa; Varış [j + 1] = cTemp; }}