Artikel ini merangkum berbagai algoritma penyortiran di Java. Bagikan untuk referensi Anda, sebagai berikut:
1. Bubble Sort:
Public Class Sortest {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}; {untuk (int j = 0; j <a.length-i-1; j ++) {if (a [j]> a [j+1]) {int tmp = a [j]; [j+1];
2. Sortir Cepat (Tidak Ada Nilai Duplikat):
Kelas Publik Sortest {public static void main (string [] args) {int [] a = {345,7,32,5,4,3,12,23,110}; .length-1); = Mulai; ) {i ++; int n, int indeks) {int tmp = a [n]; .println (arrays.tostring (a));
3. Sortir Cepat (dapat mencakup nilai berulang)
Public Class Sortest {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}; > end) kembali; = indeks && a [j] == a [index]) {index = swap (a,-j, index); A [i]) {i ++; i, indeks);}} quicksort2 (a, indeks-1); A [n]; ;}}
4. Heap Sorting
Public Class Sortest {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;} private static void show (int [] a) {System.out.println (arrays.tostring (a));
5. Sisipkan
Kelas Publik Sortest {public static 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;}} private static void show (int [] a) {System.out.println (arrays.tostring (a));
6. Lipat setengah insert
kelas publik sortest {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,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; ] Lanjutkan; ] {tinggi = mid -1; -) {a [j] = a [j-1]; ;}}
7. Bukit Sort
kelas publik sortest {public static void main (string [] args) {int [] a = {345,7,32,5,4, -1,3,2,3,7,8,90,1}} show (a); ) {int i, j, k, temp, gap; 58548857, 157840433.410151271.1131376761.2147483647}; i <n; - celah;} a [j] = temp;
8. Pilih Sort
Kelas Publik Sortest {public static 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; untuk (int j = i+1; j <a.length; j ++) {if (a [j] <a [min]) min = j; = tmp;}}} void static private (int [] a) {System.out.println (arrays.tostring (a));
9. Pemesanan
kelas publik sortest {public static void main (string [] args) {int [] a = {345,7,32,5,4, -1,3,2,3,7,7,8,90,1,432, 1}; Penyimpanan Ruang Indeks Tengah adalah dengan nilai kiri int [] kiri = setValue (a, 0, mid); ; Nilai elemen adalah 1 mergeSort (kanan); {int i = 0, j = 0, k = 0; for (; i <left.length && j <right.length;) {if (left [i] <kanan [j]) {a [k ++] = kiri [i ++];} else {a [k ++] = kanan [j ++]; ; j ++) {a [k ++] = kanan [j]; int i = 0; A)); } }
Ringkasan:
Kelas Publik Sortutil {public 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 ++) {untuk (int j = 0; j <a.length-i-1; j ++) {if (a [j] <a [j+1]) {int tmp = a [j]; j] = a [j+1]; -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ------------------------------------------------- Kemampuan -Segment-line -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- Param sort 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); Mulai; {i ++;} swap (a, i, index); int, int end) {if (start> = end) return; {J -} indeks = swap (a, j, index); , indeks - 1); c static void quicksort (int [] a, int sort) {if (sort == asc) quicksortasc (a, 0, a.length-1); statis void quicksortasc (int [] a, int, int end) {if (start> = end) kembali; [j]> A [index]) {j--} if (j! = index && a [j] == a [index]) {index = swap (a, --j, index); index = swap (a, j, index); (++ I, indeks); statis voi d quicksortdesc (int [] a, int, int end) {if (start> = end) kembali; a [j] <a [index]) {j--} if (j! = index && a [j] == a [index]) {index = swap (a,-j, index); {index = swap (a, j, index); swap (++ i, index); SWAP statis I nt (int [] a, int n, int indeks) {int tmp = a [n]; ---- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ---------- @param Sebuah array sortir * @param sort sortutil.asc, sortutil.desc */ heapsort void statis publik (int [] a, int sort) {if (sort == asc) heapeporcasc (a); i--) {createBigheap (a, i, size - 1); [1 - j]; {int tmp = a [start]; A [J]> TMP) {a [start] = a [j]; int [] a) {// Buat heap int minimum ukuran = a.length; untuk (int i = ukuran / 2 - 1; i> = 0; i--) {createSmallheap (a, i, size - 1); } // urutkan (int j = 0; j <size - 1; j ++) {int tmp = a [0]; = TMP; 1; ]; -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ------- ------------------------ /** * Masukkan Sort * * @param Sortir array * @param sortutil. ASC, sortutil.desc */ public static void InsertSort (int [] a, int sort) {if (sort == asc) {insertsortasc (a); [] a) {untuk (int i = 0; i <a.length - 1; i ++) {int n = i+1; J--) {if (tmp <a [j]) {a [n] = a [j]; public static void insertSortDesc (int [] a) {for (int i = 0; i <a.length - 1; i ++) {int n = i+1; ; ] = tmp;}} //------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ---------------- * Setengah sisipan Sort * * @param Sortir array * @param sortutil.asc, sortutil.desc */ public static void halfinsertSort (int [] a, int sort) {if (sort == asc) {Halfinsertsortasc (a); - 1; / 2; = mid + 1; tmp;}} public void HalfInsertSortDesc (int [] a) {for (int i = 0; i <a.length - 1; i ++) {int n = i+1; TMP <a [i]) Lanjutkan; tmp> a [mid]) {high = mid - 1; j> mid; J--) {a [j] = a [j-1]; -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- --------- 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, 5854857, 41477, 410477, 410477, 410477, 41047, 41047, 41047, 41047, 41047, 41047, 41047. n; --k> = 0) {Ga p = celah [k]; - gap]> temp) {a [j] = a [j - gap]; int i, j, k, temp, gap; , 21521774, 58548857, 157840433, 410151271, 1131376761, 2147483647}; = celah; j = j-celah;} a [j] = Temp;}} // ----------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ------------------- --- / ** * Pilih Sort * * @param Sort array * @param sortutil.asc, sortutil.desc * / public static void selectsort (int [] a, sort) {if (sort == asc) {selectsortasc (a); = 0; i <a.length - 1; ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::: = i+1; ] = a [min]; a [min] = tmp; ; ]; -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ------------------------------------------ -Fungsi-Segmentasi-Line-- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ------------------------------------------ sortutil.desc */ public static void MergeSort (int [] a, int sort) {// Temukan nilai menengah int mid = A.Length / 2; , mid); int [] kanan = setValue (a, mid, a.length); = = ASC) {mergeasc (a, kiri, kanan); Saya : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::: = 0, k = 0; kanan.length;) {if (kiri [i] <kanan [j]) {a [k ++] = kiri [i ++]; .length; i ++) {a [k ++] = kiri [i]; , int [] kiri, int [] kanan) {int i = 0, j = 0, k = 0; untuk (; i <left.length && j <right.length;) {if (kiri [i]> [j]) {a [k ++] = kiri [i ++];} else {a [k ++] = kanan [j ++]; ];} untuk (; j <right.length; j ++) {a [k ++] = kanan [j]; = int [panjang - mulai];
Saya harap artikel ini akan membantu pemrograman Java semua orang.