常用排序(Java实现)
Posted tangwanyan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了常用排序(Java实现)相关的知识,希望对你有一定的参考价值。
1.冒泡排序
public class BubbleSort { public static void main(String[] args) { int[] arr = new int[] { 3, 5, 1, 2, 6, 4 }; System.out.println("排序前数组为:"); for (int num : arr) { System.out.print(num + " "); } sort(arr); System.out.println(); System.out.println("排序后的数组为:"); for (int num : arr) { System.out.print(num + " "); } } public static void sort(int[] arr) { for (int i = 0; i < arr.length - 1; i++) { for (int j = 0; j < arr.length - 1 - i; j++) { if (arr[j] >= arr[j + 1]) { int num = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = num; } } } } }
2.选择排序
public class SelectionSort { public static void main(String[] args) { int[] arr = new int[] { 3, 5, 1, 2, 6, 4 }; System.out.println("排序前"); for (int num : arr) { System.out.print(num + " "); } for (int i = 0; i < arr.length - 1; i++) {// 做第i趟排序 int min = i; for (int j = min + 1; j < arr.length; j++) {// 选最小的记录 if (arr[j] < arr[min]) { min = j;// 记下目前找到的最小值所在的位置 } } // 在内层循环结束,也就是找到本轮循环的最小的数以后,再进行交换 if (i != min) { // 交换a[i]和a[min] int temp = arr[i]; arr[i] = arr[min]; arr[min] = temp; } } System.out.println(); System.out.println("排序后"); for (int num : arr) { System.out.print(num + " "); } } }
3.快速排序
public class QuickSort { public static void main(String[] args) { int[] arr = { 3, 5, 1, 2, 6, 4 }; System.out.println("排序前数组为:"); for (int num : arr) { System.out.print(num + " "); } int start = 0; int end = arr.length - 1; sort(arr, start, end); System.out.println(); System.out.println("排序后的数组为:"); for (int num : arr) { System.out.print(num + " "); } } public static int getMiddle(int[] arr, int start, int end) { int key = arr[start]; while (start < end) { // 从后往前比较 if (arr[end] >= key) {// 如果比关键值大,比较下一个,直到有比关键值小的交换位置,然后从前往后比较 end--; } arr[start] = arr[end]; // 从前往后比较 if (arr[start] <= key) { start++; } arr[end] = arr[start]; } arr[start] = key; return start; } public static void sort(int[] array, int start, int end) { if (start >= end) { return; } int index = getMiddle(array, start, end); sort(array, start, index - 1); sort(array, index + 1, end); } }
以上是关于常用排序(Java实现)的主要内容,如果未能解决你的问题,请参考以下文章