#每天一个知识点# 快速排序
思路:
对于单次的排序 partition() ,定义一个标志 part ,凡是小于该值的都放左边,大于该值的都放右边,最后把该值放到中间,并返回中间的下标 partition ,这里实现的关键是:存在一个指针 j 始终指向左边区间的最靠右的值,若 j + 1,则去到了右区间;
将数组以 partition 为中点,将数组分成两份,每一份继续进行 partition();

时间复杂度:O(nlogn)
空间复杂度:O(logn)
展开
评论