This article describes the commonly used sorting algorithms for Java arrays. Share it for your reference, as follows:
1. Bubble sorting method
SortArray_01.java
public class SortArray_01 { public static void main(String args[]) { int[] array = { 14, 5, 86, 4, 12, 3, 21, 13, 11, 2, 55, 66, 22 }; // Create an initialized one-dimensional array array System.out.println("Unsorted array:"); for (int i = 0; i < array.length; i++) { // traverse elements in array array System.out.print(" + array[i]); // Output array element if ((i + 1) % 5 == 0) // One row for every 5 elements System.out.println(); } int mid; // Define an intermediate variable to temporarily store data for (int i = 0; i < array.length; i++) { // Perform bubble sorting for (int j = i; j < array.length; j++) { if (array[j] < array[i]) { mid = array[i]; array[i] = array[j]; array[j] = mid; } } } System.out.println("/nArray sorted by bubble method:"); for (int i = 0; i < array.length; i++) { // traverse the elements in the sorted array of arrays System.out.print(" " + array[i]); // Output array element if ((i + 1) % 5 == 0) System.out.println(); // One row for every 5 elements} }}Running results:
Unsorted array: 14 5 86 4 12 3 21 13 11 2 55 66 22 Array sorted by bubble method: 2 3 4 5 11 12 13 14 21 22 55 66 86
2. Array incremental sorting
SortArray_02.java
import java.util.Arrays;import java.util.Random;public class SortArray_02 { public static void main(String[] args) { Random rd = new Random(); int[] array = new int[15]; // Declare the array System.out.println("Array before the sort method is used: "); for (int i = 0; i < array.length; i++) { // Use random numbers to generate 15 random numbers between 0 and 20 array[i] = rd.nextInt(20); // Assign value to array array System.out.print(" " + array[i]); if ((i + 1) % 5 == 0) System.out.println(); } Arrays.sort(array); // Sort the array ascending order System.out.println("/nArray after using sort method: "); for (int i = 0; i < array.length; i++) { // Output the data in array array System.out.print(" + array[i]); if ((i + 1) % 5 == 0) System.out.println(); } }}Running results:
Array before the sort method is not used: 13 12 11 18 11 11 17 13 11 8 1 0 9 18 3Array after the sort method is used: 0 1 3 8 9 11 11 11 11 11 12 13 13 17 18 18
3. Quick sorting method
SortArray_03.java
public class SortArray_03 { public static void main(String args[]) { int[] intArray = { 12, 11, 45, 6, 8, 43, 40, 57, 3, 20, 15, 88, 23 }; System.out.println("Array before sorting:"); for (int i = 0; i < intArray.length; i++) { System.out.print(" + intArray[i]); // Output array element if ((i + 1) % 5 == 0) // System.out.println(); } System.out.println(); int[] b = quickSort(intArray, 0, intArray.length - 1); // Call quickSort System.out.println("Array using QuickSort:"); for (int i = 0; i < b.length; i++) { System.out.print(" + b[i]); if ((i + 1) % 5 == 0) // One line for every 5 elements System.out.println(); } } public static int getMiddle(int[] array, int left, int right) { int temp; // Do a quick sort and return to the center point position int mid = array[left]; // Place the center at a[0] while (left < right) { while (left < right && array[right] >= mid) right--; temp = array[right]; // Move data smaller than the center point to the left array[right] = array[left]; array[left] = temp; while (left < right && array[left] <= mid) left++; temp = array[right]; // Move data larger than the center point to the right array[right] = array[left]; array[left] = temp; } array[left] = mid; // Move the center to the correct position return left; // Return to the center point} public static int[] quickSort(int[] array, int left, int right) {// Quick sorting method if (left < right - 1) { // If the starting point and node do not overlap, that is, the pointer has not been executed to the end int mid = getMiddle(array, left, right); // Retrieve the middle point quickSort(array, left, mid - 1); quickSort(array, mid + 1, right); } return array; }}Running results:
Array before sorting: 12 11 45 6 8 43 40 57 3 20 15 88 23 Array after using QuickSelect method: 3 6 8 11 12 20 15 23 40 43 45 88 57
4. Select sorting method
SortArray_04.java
public class SortArray_04 { public static void main(String args[]) { int[] array = { 14, 5, 86, 4, 12, 3, 51, 13, 11, 2, 32, 6, 45, 34 }; // Create an initialized one-dimensional array array int keyValue; // Indicate the smallest element value int index; // Indicate the smallest element value int temp; // Intermediate variable System.out.println("Unsorted array:"); for (int i = 0; i < array.length; i++) { // traverse elements in array array System.out.print(" " + array[i]); // Output array element if ((i + 1) % 5 == 0) // One row for every 5 elements System.out.println(); } for (int i = 0; i < array.length; i++) { // Use the core index of the selection sorting method = i; keyValue = array[i]; for (int j = i; j < array.length; j++) if (array[j] < keyValue) { index = j; keyValue = array[j]; } temp = array[i]; array[i] = array[index]; array[index] = temp; } System.out.println("/nUse the array after selecting sorting:"); for (int i = 0; i < array.length; i++) { // traverse the elements in the sorted array System.out.print(" " + array[i]); // Output array element if ((i + 1) % 5 == 0) System.out.println(); // One row for every 5 elements} }}Running results:
Unsorted array: 14 5 86 4 12 3 51 13 11 2 32 6 45 34 Arrays after using the selection sorting method: 2 3 4 5 6 11 12 13 14 32 34 45 51 86
PS: Here is a demonstration tool for your reference:
Online animation demonstration insert/select/bubble/merge/hill/quick sorting algorithm process tool:
http://tools.VeVB.COM/aideddesign/paixu_ys
For more information about Java algorithms, readers who are interested in this site can view the topics: "Java Data Structure and Algorithm Tutorial", "Summary of Java Operation DOM Node Tips", "Summary of Java File and Directory Operation Tips" and "Summary of Java Cache Operation Tips"
I hope this article will be helpful to everyone's Java programming.