Эта статья реализует восемь обычно используемых алгоритмов сортировки: вставка сортировки, сортировка пузырьков, выбор сортировки, сортировка холма, быстрая сортировка, сортировка слияний, укладки и сортировка базы LST
Первый - восемь альболитов .
Импорт java.util.arrays; Вставить сортировку: временной комплекс o (n^2) public static void вставка (int a [], int n) {for (int i = 1; i <n; ++ i) {{int temp = a [i]; int j = I -1; ;}} // Сортировка пузырьков: сложности времени o (n^2) public static void bubblesort (int a [], int n) {for (int i = n -1; i> 0; 0; 0; 0; 0 ; Temp = a [j]; int a [], int n) {for (int i = 0; i <n -1; ++ i) {int min = a [i]; j <n; J]; Public static void shellsort (int a [], int n) {for (int dap = n / 2; Gap> = 1; Gap / = 2) {for (int i = GAP; i <n; ++ i) { int temp = a [i]; J + GAP] = TEST;}} // Быстрая сортировка: сложность времени o (nlgn) public void QuickSort (int a [], int n) {_quicksort (_quicksort (a, 0, n-1);} public static void слева, Q -1); влево <справа && a [справа]> = pivot) {--ruight;} a [left] = a [справа]; вправо] = a [слева];} a [слева] = pivot; , n -1); Mid); -Left +1; J];} int i = 0; ] <newa [j]) {a [k] = newa [i ++];} else {a [k] = newa [j ++];} while (i <= mid -left) {a [k + +] = newa [i ++];} while (j <= right -left) {a [k ++] = newa [j ++];} // Сортировка кучи: сложности времени o (nlgn) public void huepsort Heapsort (int a [], int n) {buldmaxHeap (a, n); i) {int temp = a [0]; [], int n) {upadjust (a, n);} // массив длины n корректируется к общедоступной статической void upadjust (int a [], int n) {// Каждый элемент с обходом дочернего узла - это Траверно. n) {// Правый ребенок Значение значения больше, чем значение узла, обменивалось их, если (a [2 * i]> a [i -1]) {int temp = a [2 * i]; a [2 * i] = a [i -1]; i -1]> a [i -1]) {int temp = a [2 * i -1]; } // Регулируйте корректировку (a, n, 2 * i); {// Значение узла, обмениваться их, если (a [2 * i -1]> a [i -1]) {int temp = a [2 * i -1]; = a - 1]; Массив, Radix - это базовая // Этот метод предназначен для использования метода LST для сортировки базы, а метод MST не включен в него // Радикс параметров - это основание, как правило, 10; чисел до массива, которые будут отсортированы; Чтобы временно депонировать массив [] count = new int [radix]; первое место в первом месте (int i = 0; i <<< iStance; ++ i) {System.ArrayCopy (a, 0, newa, 0, n); Массивные массивы Newa.fill (Count, 0); ; Конечная позиция каждого Radixkey в массиве, а диапазон номеров позиции составляет 1 -N для (int j = 1; j <radix; ++ j) {count [j] = count [j] + count [j -1 ];} // Использование принципа сортировки для достижения вида. J];Затем тестовый код testeightalgorithms.java , код заключается в следующем:
Открытый класс Testeightalgorithms {public static void printarray (int a [], int n) {for (int i = 0; i <n; ++ i) {System.print (a [i] +""); == n -1) {system.out.println ();}} public static void main (string [] args) {for (int i = 1; i <= 8; ++ i) {int arrr [] = {45, 38, 26, 77, 128, 38, 25, 444, 61, 153, 9999, 1012, 43, 128}; 2: Восемь Альти : Восемь альбомов. Eightalgorithms.lstradixsort (arr, arr.length, 10, 4); Последние результаты пробега следующие:
Выше всего код для Java для реализации восемь обычно используемых алгоритмов сортировки.