Инструкция
1
При выборе наилучшего метода сортировки следует учитывать два параметра: время, затрачиваемое на операцию упорядочивания, и объем требуемой памяти для вспомогательного хранения данных. Алгоритмы сортировки, не требующие использования дополнительной памяти, относят к сортировкам «на месте». Одной из самых простых для реализации считается медленная «пузырьковая» сортировка, при которой осуществляется просмотр каждой пары элементов в списке и производится обмен местами в зависимости от желаемого порядка.
2
Существует более быстрый метод сортировки с помощью нахождения минимального или максимального элемента в списке. В случае с сортировкой по алфавиту при каждом проходе по списку требуется найти его максимальный элемент – это будет строка, начинающаяся на самую ближайшую к началу алфавита букву. После нахождения строка меняется местами с самым первым элементом списка на первом проходе. При дальнейшем рассмотрении списка первое место исключается, ищется следующий максимальный элемент, ставится уже на второе место и т.д. Код программы сортировки на С++ методом нахождения максимального элемента списка: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
Наиболее оптимальным решением упорядочивания строковых данных в списке можно назвать сортировку вставками. Ее суть заключатся в том, что при каждом проходе по списку имеется упорядоченная часть списка из определенного количества элементов, таким образом, следующий рассматриваемый элемент помещается на подходящее ему место в списке. Код программы на С++ алгоритма сортировки вставками :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; }}