冒泡排序可以说是我们学习的第一个真正的排序算法,并且解决了桶排序浪费
空间的问题,但在算法的执行效率上却牺牲了很多,它的时间复杂度达到了 O(N^2)。假如我
们的计算机每秒钟可以运行 10 亿次,那么对 1 亿个数进行排序,桶排序只需要 0.1 秒,而冒
泡排序则需要 1 千万秒,达到 115 天之久,是不是很吓人?那有没有既不浪费空间又可以快一点的排序算法呢?那就是“快速排序”啦!
public class QuickSort {
public static void main(String[] args) {
int[] array = {34, 7, 23, 32, 5, 62, 32, 2, 78, 1};
System.out.println("原始数组:");
printArray(array);
quickSort(array, 0, array.length - 1);
System.out.println("排序后的数组:");
printArray(array);
}
// 快速排序的主函数
public static void quickSort(int[] array, int low, int high) {
if (low < high) {
// pi是分区索引,array[pi]已经排好序
int pi = partition(array, low, high