今天晚上我学习快速排序,快速排序里面涉及到了思想有递归和分治。
快速排序里面最重要的一个变量是哨兵变量,它充当了一个中间值的角色。
然后遍历数组,逐个比较数组中的值跟中间值的大小,小的排在中间值前面,大的排在后面。
不断的二分分治,直到所有的数字都遍历完。
快排的递归分治就完成了。
快排是冒泡排序的一种质的提升,时间复杂度不稳定,在O(nlogn)~O(n`2)之间。
冒泡排序时间稳定在O(n`2)。
我今天晚上用C++写了快排算法和冒泡排序算法,代码如下:
#include <iostream>
#include <ctime>
#include <cstdlib>
#include <windows.h>
using na