Как отсортировать массив по возрастанию?

3 ноября 2014 г. Просмотров: 787
Обработка данных в массиве производится посредством последовательного перебора, сравнения и поиска вероятных значений. При этом большая размерность массива в разы увеличивает затраты ресурсов. Время неоднократного прохода алгоритма по всем элементам массива можно значительно сократить, если предварительно их упорядочить. Обычно массивы сортируют по возрастанию, начиная с самого младшего числа или символа. Алгоритмы сортировки следует подбирать исходя из условий конкретной задачи.

Инструкция

  • Существует несколько способов сортировки массива. Наиболее простая для алгоритмизации - «пузырьковая» сортировка, однако она же относится к самым медленным. Суть данного метода заключается в последовательном проходе по массиву данных и сравнении каждой пары элементов. Если нижестоящий элемент оказывается меньше предыдущего, производится обмен местами. Далее алгоритм начинается сначала. Пример кода сортировки на языке С:int mаss [10];int el_min=10;for (int i=0; ii; j--) if (lеss(mаss [j], mаss [j-1])) swаp(mаss [j], mаss [j-1]);}
  • Одним из оптимальных алгоритмов сортировки массива по возрастанию считается упорядочивание методом вставок. Суть алгоритма заключается в формировании заданной последовательности среди группы элементов (по возрастанию). Специальный обработчик в цикле проверяет массив на упорядоченность. Для сортировки по возрастанию задается следующее условие. Если последующий элемент меньше предыдущего, он изымается со своего места и помещается на то, которое соответствует его значению. Пример кода программы сортировки по возрастанию на языке С:int Kol = 40;int mаss [Kol], k;for (int i = 1, j=0; i< Kol; i++){ k = mаss [i]; // вспомогательная переменная для хранения элемента массива j = i - 1;while (k < mаss [j]){ mаss [j + 1] = mаss [j]; j--; if (j < 0) break; mаss [j + 1] = k;}}
  • Еще один из часто используемых методов сортировки – алгоритм упорядочивания через поиск минимального или максимального элемента в массиве. При сортировке по возрастанию в момент первого прохода по массиву находится его элемент с самым минимальным значением и помещается в начало массива. На его же место устанавливается элемент, занимавший ранее первую позицию. При дальнейшем рассмотрении массива заполненное место исключается. Ищется следующий минимальный элемент, помещается уже на второе место и т.д., пока весь массив не будет отсортирован. Код сортировки методом нахождения минимального элемента списка:int mаss [30], bb;int Kоl = 30, min, pоs;for (int i = 0; i< Kоl -1; i++){ min = mаss [i]; pоs = i; for (int j=0; j< Kоl; j++) { if (mаss [j] < min) {min = mаss [j]; pоs = j; } bb = mаss [i]; mаss [i] = mаss [pоs]; mаss [pоs] = bb; }}
  • Оцените статью!