Як відсортувати список за алфавітом

Як відсортувати список за алфавітом

Будь-яку послідовність даних одного типу можна представити у вигляді списку. Списки бувають впорядкованими і неупорядкованими. В останньому випадку робота з даними, пошук потрібного значення, звернення до елементів списку викликають певні труднощі. Список рядкових змінних, як правило, впорядковується за алфавітом. Існує багато методів сортування, в кожному конкретному випадку слід вибирати найбільш оптимальний алгоритм.

Інструкція

1. При виборі найкращого методу сортування слід враховувати два параметри: час, що витрачається на операцію впорядкування, і обсяг необхідної пам 'яті для допоміжного зберігання даних. Алгоритми сортування, які не потребують використання додаткової пам 'яті, відносять до сортувань "на місці". Одним з найпростіших для реалізації вважається повільне "бульбашкове" сортування, при якому здійснюється перегляд кожної пари елементів у списку і проводиться обмін місцями залежно від бажаного порядку.

2. Існує швидший метод сортування за допомогою мінімального або максимального елемента у списку. У випадку з сортуванням за алфавітом при кожному проході за списком потрібно знайти його максимальний елемент - це буде рядок, що починається на саму найближчу до початку алфавіту букву. Після знаходження рядок змінюється місцями з найпершим елементом списку на першому проході. При подальшому розгляді списку перше місце виключається, шукається наступний максимальний елемент, ставиться вже на друге місце тощо. Код програми сортування на C++ методом знаходження максимального елемента списку:String Arr[20], cTemp;int N=20, Мах, Рos;for (int i = 0; i < N-1; i++){ Max = Arr [i]; Pos = i; for (int j=0; j < N; j++) { if (Arr [j] < Max) { Max = Arr [j]; Pos = j; } cTemp = Arr [i]; Arr [i] = Arr [Pos]; Arr [Pos] = cTemp; }}

3. Найбільш оптимальним рішенням упорядкування рядкових даних у списку можна назвати сортування вставками. Її суть полягає в тому, що при кожному проході за списком є впорядкована частина списку з певної кількості елементів, таким чином, наступний розглянутий елемент поміщається на відповідне йому місце в списку. Код програми на C++ алгоритму сортування вставками:String Arr[20], cTemp;int N=20;for (int i = 1, j=0; i < N; i++){ cTemp = Arr [i]; j = i - 1; while (cTemp < Arr [j]) { Arr [j + 1] = Arr [j]; j--; if (j < 0) break; Arr [j + 1] = cTemp; }}