Dowolna sekwencja danych tego samego typu może być reprezentowana jako lista. Listy mogą być uporządkowane i nieuporządkowane. W tym drugim przypadku praca z danymi, znalezienie pożądanej wartości i dostęp do elementów listy powodują pewne trudności. Lista zmiennych łańcuchowych jest zwykle posortowana alfabetycznie. Metod sortowania jest wiele, w każdym przypadku należy wybrać najbardziej optymalny algorytm.
Instrukcje
Krok 1
Wybierając najlepszą metodę sortowania, należy wziąć pod uwagę dwie rzeczy: czas potrzebny na operację sortowania i ilość pamięci wymaganej do przechowywania danych pomocniczych. Algorytmy sortowania, które nie wymagają dodatkowej pamięci, są określane jako sortowanie „w miejscu”. Jednym z najłatwiejszych do zaimplementowania jest powolne sortowanie bąbelkowe, które skanuje każdą parę elementów na liście i zamienia miejsca w zależności od pożądanej kolejności.
Krok 2
Istnieje szybsza metoda sortowania poprzez znalezienie minimalnej lub maksymalnej pozycji na liście. W przypadku sortowania alfabetycznego, za każdym razem, gdy przeglądasz listę, musisz znaleźć jej maksymalny element - będzie to ciąg rozpoczynający się literą najbliższą początku alfabetu. Po znalezieniu ciąg jest zamieniany z pierwszą pozycją na liście w pierwszym przebiegu. Po dalszym rozpatrzeniu listy pierwsze miejsce jest wykluczone, poszukiwany jest kolejny maksymalny element, umieszczany na drugim miejscu itd. Kod programu sortującego w C++ metodą znalezienia maksymalnego elementu listy: String Arr [20], cTemp; int N = 20, Max, Pos; for (int i = 0; i <N- 1;i++) {Max = Arr ; Poz = ja; for (int j = 0; j <N; j ++) {if (tab. [j] <maks.) {maks. = tab. [j]; Poz = j; } cTemp = Arr ; Arr = Arr [Poz]; Arr [Poz] = cTemp; }}
Krok 3
Najbardziej optymalnym rozwiązaniem dla uporządkowania danych łańcuchowych na liście jest sortowanie przez wstawianie. Jej istota polega na tym, że przy każdym przejściu przez listę uporządkowana część listy składa się z określonej liczby elementów, a więc kolejny rozważany element umieszczany jest w odpowiednim miejscu na liście. Kod C++ algorytmu sortowania przez wstawianie: String Arr [20], cTemp; int N = 20; for (int i = 1, j = 0; i <N; i ++) {cTemp = Arr ; j = i-1; while (cTemp <Prz [j]) {Prz [j + 1] = Tab [j]; J--; jeśli (j <0) pęknie; Arr [j + 1] = cTemp; }}