> 文章列表 > java排序算法

java排序算法

java排序算法

冒泡排序

(1)从第一个元素开始,比较两个相邻的元素。如果第一个比第二个大,那么进行交换。
(2)轮到下一组相邻元素,执行同样的操作,重复比较,直到没有相邻元素为止,此时最后的元素就是最大的元素。
(3)出列每次排序得到的最后一位元素,对剩余元素重复以上步骤,直到没有任何一对元素需要比较为止。

    public void bubbleSortOpt(int[] arr) {if(arr.length < 2) {return;}int temp = 0;for (int i = 0; i < arr.length - 1; i++) {for (int j = 0; j < arr.length - i - 1; j++) {if (arr[j] > arr[j + 1]) {temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}}

快速排序

public static void quickSortOpt(int[] arr, int start, int end) {if (start < end) {int stand = arr[start];int low = start;int high = end;while (low < high) {while (low < high && arr[high] >= stand) {high--;}while (low < high && arr[low] <= stand) {low++;}int temp = arr[low];arr[low] = arr[high];arr[high] = temp;}arr[start] = arr[low];arr[low] = stand;quickSortOpt(arr, start, low);quickSortOpt(arr, low + 1, end);}}

插入排序

public static void insertSort(int[] arr) {for (int i = 1; i < arr.length; i++) {if (arr[i] < arr[i - 1]) {int j;int temp = arr[i];for (j = i - 1; j >= 0 && arr[j] > temp; j--) {arr[j + 1] = arr[j];}arr[j + 1] = temp;}}}

选择排序

public static void selectSort(int[] arr) {for (int i = 0; i < arr.length; i++) {int min = i;for (int j = i + 1; j < arr.length; j++) {if (arr[j] < arr[min]) {min = j;}}if (min != i) {int temp = arr[i];arr[i] = arr[min];arr[min] = temp;}}}

第一教育信息网