Совет 1: Как отсортировать массив по возрастанию

Обработка данных в массиве производится посредством последовательного перебора, сравнения и поиска вероятных значений. При этом большая размерность массива в разы увеличивает затраты ресурсов. Время неоднократного прохода алгоритма по всем элементам массива можно значительно сократить, если предварительно их упорядочить. Обычно массивы сортируют по возрастанию, начиная с самого младшего числа или символа. Алгоритмы сортировки следует подбирать исходя из условий конкретной задачи.
Как отсортировать массив по возрастанию
Инструкция
1
Существует несколько способов сортировки массива. Наиболее простая для алгоритмизации - «пузырьковая» сортировка, однако она же относится к самым медленным. Суть данного метода заключается в последовательном проходе по массиву данных и сравнении каждой пары элементов. Если нижестоящий элемент оказывается меньше предыдущего, производится обмен местами. Далее алгоритм начинается сначала. Пример кода сортировки на языке С:

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]);
}
2
Одним из оптимальных алгоритмов сортировки массива по возрастанию считается упорядочивание методом вставок. Суть алгоритма заключается в формировании заданной последовательности среди группы элементов (по возрастанию). Специальный обработчик в цикле проверяет массив на упорядоченность. Для сортировки по возрастанию задается следующее условие. Если последующий элемент меньше предыдущего, он изымается со своего места и помещается на то, которое соответствует его значению. Пример кода программы сортировки по возрастанию на языке С:

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

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;
}
}

Совет 2 : Как упорядочить массив

Способы упорядочивания элементов массивов зависят от инструментов, которые имеются у вас в распоряжении. Ниже приведены несколько вариантов упорядочивания одномерных массивов при использовании наиболее распространенного серверного языка программирования PHP. Самостоятельно составлять функции для перебора элементов массива, их сравнения и присвоения новых значений при использовании этого языка не требуется - все это делают встроенные функции.
Как упорядочить массив
Инструкция
1
Используйте функцию sort(), если надо выстроить данные в массиве в порядке их возрастания. Например:$values = array(58, 15, 2.41, 26, 30);
sort($values);В результате применения функции изменится порядок расположения данных в массиве - он станет таким: (2.41, 15, 26, 30, 58). Если в вызов функции добавить флаг SORT_STRING, то функция будет считать данные массива строковыми переменными и выстраивать их по алфавиту. Так как первый знак строковой переменной «2.41» в алфавите располагается дальше, чем первый знак строковой переменной «15», то после применения функции sort($values, SORT_STRING) переменные выстроятся иначе: (15, 2.41, 26, 30, 58).
2
Воспользуйтесь функцией rsort() при необходимости упорядочить массив в порядке убывания его значений. Эта функция отличается от описанной в первом шаге только порядком сортировки.
3
Применяйте функцию asort(), если необходимо упорядочить в порядке возрастания значения именованного (ассоциативного) массива, не изменяя при этом исходных соответствий между индексом и значением каждого элемента массива. Например:$values = array('one' => 58, 'two' => 15, 'three' => 2.41, 'four' => 26, 'five' => 30);
asort($values);В результате порядок следования элементов массива станет таким: ('three' => 2.41, 'two' => 15, 'four' => 26, 'five' => 30, 'one' => 58). В остальном действие этой функции не отличается от описанной в первом шаге функции sort. Для аналогичного упорядочивания элементов в порядке убывания используйте функцию arsort().
4
Задействуйте функцию ksort(), если надо упорядочить элементы в порядке возрастания не значений, а индексов (ключей). Эта функция актуальна для именованных (ассоциативных) массивов. Например:$values = array('one' => 58, 'two' => 15, 'three' => 2.41, 'four' => 26, 'five' => 30);
ksort($values);В результате по алфавиту будут выстроены ключи функции, а вместе с ними изменится и порядок следования значений: ('five' => 30, 'four' => 26, 'one' => 58, 'three' => 2.41, 'two' => 15). Для упорядочивания ключей в обратном порядке предназначена функция krsort().
5
Используйте функцию array_reverse(), если требуется просто изменить порядок следования значений элементов массива на противоположный. То есть значение последнего элемента массива присвоить первому, предпоследнего - второму, и т.д. Например:$values = array('one' => 58, 'two' => 15, 'three' => 2.41, 'four' => 26, 'five' => 30);
$newValues = array_reverse($values);В результате в массиве $newValues элементы будут следовать в таком порядке: ('five' => 30, 'four' => 26, 'three' => 2.41, 'two' => 15, 'one' => 58). Обратите внимание на то, что применение этой функции не изменяет порядка следования элементов в исходном массиве $values.
Источники:
  • как упорядочены элементы массива
Совет полезен?
Поиск
Добавить комментарий к статье
Осталось символов: 500