1. Сортировка пузырьков
Идея алгоритма: пройти массив, который будет отсортирован, и каждый раз сравнивайте два смежных элемента. Если их приказ о договоренности неверен, обменяйте их позиции. После поездки в сортировку самый большой элемент будет плавать до конца массива. Повторите, пока сортировка не будет завершена.
Образец демонстрации:
Алгоритм реализация:
for (int i = 0; i <array.length-1; i ++) {// sort n-1 раз больше всего для (int j = 0; j <array.length-i-1; j ++) {// количество раз, которые необходимо обменять, если (array [j]> ray [j+1]) {int temp = ray [j]; массив [j] = массив [j+1]; массив [j+1] = temp; }}}Сложность времени алгоритма: O (n2) Внешняя петля необходимо сравнивать N-1, а внутренний цикл должен сравниваться n раз.
2. Выберите сортировку
Идея алгоритма: повторно избирайте наименьший элемент в массиве, который будет отсортирован, и обменивать его с элементом в первой позиции массива. Затем выберите наименьший элемент из оставшихся элементов и обменяйте его с элементом во второй позиции. Если самый маленький элемент является элементом в этой позиции, обменяйте его с самим собой и т. Д. До тех пор, пока сортировка не будет завершена.
Образец демонстрации:
Алгоритм реализация:
for (int i = 0; i <array.length; i ++) {int min = i; for (int j = i+1; j <array.length; j ++) {if (array [j] <array [min]) {min = j; }} int temp = array [min]; массив [min] = массив [i]; массив [i] = temp; } Сложность времени: O (N2) требует сравнения N2/2 и N обменов
3. Вставьте сортировку
Идея алгоритма: начало пересекать второй элемент массива, сравните элемент с предыдущим элементом, если элемент меньше, чем предыдущий элемент, сохраните элемент во временную переменную, переместите предыдущий элемент в свою очередь, а затем вставьте элемент в подходящую позицию. После завершения каждой сортировки элементы на левой стороне индекса должны быть заказаны, но все еще могут быть перемещены. Для массивов с меньшим количеством инверсий, тем более эффективным является алгоритм.
Примечание: перевернуто: 5 3 6 2. Инвертированный термин 5-3 5-2 3-2 6-2
Образец демонстрации:
Алгоритм реализация:
for (int i = 1; i <array.length; i ++) {for (int j = i; j> 0 && array [j] <array [j-1]; j-) {int temp = array [j]; Array [j] = массив [J-1]; массив [J-1] = TEMP; }}Сложность времени: O (N2) Сравнение N2/2, N2/2, N2/2 Обмен лучший случай N-1 сравнение, 0 обменов
Приведенные выше три простых алгоритма сортировки (реализованные с использованием Java) - это все контент, которым я делюсь с вами. Я надеюсь, что вы можете дать вам ссылку, и я надеюсь, что вы сможете поддержать Wulin.com больше.