В этой статье суммируются различные алгоритмы сортировки в Java. Поделитесь этим для вашей ссылки, следующим образом:
1. Bubble Sort:
открытый класс SortTest {public static void main (string [] args) {int [] a = {345,7,32,5,4, -1,3,12,23,110,45645,321,456,78, -1,78 , 78,32,444,345}; {for (int j = 0; j <a.length-i-1; j ++) {if (a [j]> a [j+1]) {int tmp = a [j]; [J+1];
2. Быстрая сортировка (без дублирующих значений):
public class sorttest {public void main (string [] args) {int [] a = {345,7,32,5,4,3,12,23,110}; .length-1); = start; {i ++; int n, int index) {int tmp = a [n]; .println (Arrays.tostring (a));
3. Быстрая сортировка (может включать повторные значения)
открытый класс SortTest {public static void main (string [] args) {int [] a = {345,7,32,5,4, -1,3,12,23,110,45645,321,456,78, -1,78 , 78,32,345}; > = return; = index && a [j] == a [index]) {index = swap (a,-j, index); a [i]) {i ++; I, Index); a [n]; ;
4. Сортировка кучи
открытый класс SortTest {public static void main (string [] args) {int [] a = {345,7,32,5,4, -1,3,12,23,110,45645,321,456,78, -1,78 , 78,32,444,345}; /2-1; i> = 0; i-) {createBigheap (a, i, size-1); [0]; [] a, int start, int end) {int tmp = a [start]; +1] {j ++; ] = TMP;
5. Вставьте сортировку
public class sorttest {public void main (string [] args) {int [] a = {345,7,32,5,4, -1,3}; ); j = i; j> = 0; j-) {if (tmp <a [j]) {a [n] = a [j]; a [n] = tmp;
6. Складывать половину вставки сортировки
открытый класс sorttest {public static void main (string [] args) {int [] a = {345,7,7,345,2,2,7,2,7,23,2,345,7,32,5,4,- 1,3,7,2,3,2,3,4,2,1,2,4,5,3,345,3,2}; static void insertsort2 (int [] a) {for (int i = 0; i <a.length-1; i ++) {int n = i+1; ) продолжить; ] {high = mid -1; -) {a [j] = a [j-1]; ;
7. Hill Sort
открытый класс sorttest {public static void main (string [] args) {int [] a = {345,7,32,5,4, -1,3,2,3,5,7,8,90,1} ; ) {int i, j, k, temp, gap; 5854857, 157840433,410151271,1131376761,2147483647}; i <n; - GAP;
8. Выберите сортировку
Public Class SortTest {public void main (string [] args) {int [] a = {345,7,32,5,4, -1}; } private static void selectsort (int [] a) {for (int i = 0; i <a.length-1; i ++) {int min = i; j ++) {if (a [j] <a [min] min = j; = tmp;
9. Заказ
открытый класс sorttest {public static void main (string [] args) {int [] a = {345,7,32,5,4, -1,3,2,3,5,7,8,90,1,432, 1}; хранилище пространства Средний индекс с левым значением int [] left = setValue (a, 0, mid); ; Значение элемента 1 Mergesort (справа); {int i = 0, j = 0, k = 0; [i ++]; ; j ++) {a [k ++] = right [j]; int i = 0; а));
Краткое содержание:
Общедоступный класс {public final Static int desc = -1; (int [] a, int sort) {if (sort == asc) bubblesortasc (a); .length-1; i ++) {for (int j = 0; j <a.length-i-1; j ++) {if (a [j]> a [j+1]) {int tmp = a [j] ; 1; i ++) {for (int j = 0; j <a.length-i-1; j ++) {if (a [j] <a [j+1]) {int tmp = a [j]; j] = a [j+1]; ------------------------------------------------------ ------------------------------------------------------ ------------------------------------------------------ ------------------------------------------------- Способность -Сегмент ------------------------------------------------------- ------------------------------------------------------ ------------------------------------------------------ ------------------------------------------------------ ------------------------------------------------------ param sortutil.asc, sortutil.desc */ public static void QuickNorePeatsort (int [] a, int sort) {if (sort == asc) QuickNorePeatSortasc (a, 0, a.length-1); 0, A.Length-1); start; {i ++; int int end) {if (start> = end) {j -; , index - 1); C Статический QuickSort (int [] a, int sort) {if (sort == asc) Quicksortasc (a, 0, a.length-1); static vicksortasc (int [] a, int ind, int) {if (start> = end) [j]> a [index]) {j--; index = swap (a, j, index); (A, ++ I, Index); static voi d QuicksortDesc (int [] a, int start, int end) {if (start> = end) a [j] <a [index]) {j--; {index = swap (a, j, index); SWAP (A, ++ I, Индекс); Приватный статический обмен (int [] a, int n, int index) {int tmp = a [n]; ---- ---------------------------------------------------------- ------------------------------------------------------ ------------------------------------------------------ ------------------------------------------------------ ------------------------------------------------------ -------------- @param a Sort Array * @param sortutil.asc, sortutil.desc */ public static void guepsort (int [] a, int sort) {if (sort == asc) Heapsortasc (а); i--) {createBigheAp (a, i, size - 1); [размер - 1 - J]; {int tmp = a [start]; [J]> TMP) {a [start] = a [j]; int [] a) {// Создать минимальную кучу int size = a.length; } // Сортировка для (int j = 0; j <размер - 1; j ++) {int tmp = a [0]; = TMP; 1; ]; ------------------------------------------------------ ------------------------------------------------------ ------------------------------------------------------ ------------------------------------------------------ ------- ------------------------ /** * Вставьте сортировку * * @param a Sort Array * @param sortutil. ASC, sortutil.desc */ public static void insertsort (int [] a, int sort) {if (sort == asc) {insertsortasc (a); [] a) {for (int i = 0; i <A.Length - 1; i ++) {int n = i+1; j--) {if (tmp <a [j]) {a [n] = a [j]; public static void вставки ; ] = TMP; ------------------------------------------------------ ------------------------------------------------------ ------------------------------------------------------ ------------------------------------------------------ ---------------- * Половина вставки сортировки * * @param a Sort Array * @param sortutil.asc, sortutil.desc */ public static void talfinsertsort (int [] a, int sort) {if (sort == asc) {thelinsertsortasc (a); - 1; / 2; = mid + 1;} else {low = mid; TMP; TMP <a [i]) Продолжить; TMP> a [mid]) {high = mid - 1; J> Mid; ------------------------------------------------------ ------------------------------------------------------ ------------------------------------------------------ ------------------------------------------------------ ---------------- --------------------- /** * Сорта холма * * @param a Sort Array * @param sort Sortutil.asc, sortutil.desc */ public static void shellsort (int [] a, int sort) {if (sort == asc) {shellsortasc (a, a.length); ); , 4711, 11969, 27901, 84801, 213331, 543749, 1355339, 3501671, 8810089, 21521774, 58548857, 157840433, 410151271, 1131376761, 21474833; n; --К> = 0) {ga p = Quars [k]; - GAP]> TEMP) {A [J] = A [J - GAP]; Int I, J, K, Temp, Gap; , 21521774, 58548857, 157840433, 410151271, 1131376761, 2147483647}; = GAP; J = J-GAP; ------------------------------------------------------ ------------------------------------------------------ ------------------------------------------------------ ------------------------------------------------------ ------------------- --- / ** * Выберите Sort * * @param a Sort Array * @param sortutil.asc, sortutil.desc * / public static void selectsort (int [] a, int sort) {if (sort == asc) {selectsortasc (a); = 0; ::::::::::::::::: :::::::::::::::::::::::::::: = i+1; ] = a [min]; ; ]; ------------------------------------------------------ ------------------------------------------------------ ------------------------------------------------------ -------------------------------------- -Function-Segmation-Line-- ------------------------------------------------------ ------------------------------------------------------ ------------------------------------------------------ ------------------------------------------------------ ------------------------------------------ sortutil.desc */ public static void Mergesort (int [] a, int sort) {// Найти промежуточное значение int mid = a.length / 2; , mid); int [] right = setValue (a, mid, a.length); = = Asc) {mergeasc (a, слева, справа); i :::::::::::::::::::::: ::::::::::::::::: ::::::::::::::: right.length;) {if (left [i] <ruight [j]) {a [k ++] = слева [i ++]; .length; , int [] слева, int [] right) {int i = 0, j = 0, k = 0; [j]) {a [k ++] = слева [i ++]; ]; = new int [длина - начало];
Я надеюсь, что эта статья будет полезна для всех Java Programming.