快速排序,升序。释义参考百度百科
public static void quickSort(int[] ints, int start, int end) { int pivot = ints[start], i = start, j = end; while (i < j) { // 从右向左找小于pivot的数来填ints[i] while (i < j && ints[j] >= pivot) { j--; } if (i < j) { ints[i] = ints[j]; i++; } // 从左向右找大于或等于pivot的数来填ints[j] while (i < j && ints[i] < pivot) { i++; } if (i < j) { ints[j] = ints[i]; } ints[i] = pivot; // 左边区间快速排序 quickSort(ints, start, i - 1); // 右边区间快速排序 quickSort(ints, i + 1, end); } }
测试代码:
import java.util.Arrays; public class QuickSort { public static void main(String[] args) { int[] ints = {9, 12, 0, 5, -1, -1}; quickSort(ints, 0, ints.length - 1); System.out.println(Arrays.toString(ints)); } public static void quickSort(int[] ints, int start, int end) { int pivot = ints[start], i = start, j = end; while (i < j) { // 从右向左找小于pivot的数来填ints[i] while (i < j && ints[j] >= pivot) { j--; } if (i < j) { ints[i] = ints[j]; i++; } // 从左向右找大于或等于pivot的数来填ints[j] while (i < j && ints[i] < pivot) { i++; } if (i < j) { ints[j] = ints[i]; } ints[i] = pivot; // 左边区间快速排序 quickSort(ints, start, i - 1); // 右边区间快速排序 quickSort(ints, i + 1, end); } } }
原文:https://www.cnblogs.com/convict/p/14666740.html