排序算法(快速排序)
2020-12-13 05:55
标签:快速排序 遍历 大于 场景 void string div 关于 循环 关于排序算法,常见的大致有:冒泡排序、插入排序、选择排序、快速排序、归并排序、桶排序、计数排序等。每一种排序算法都有它们各自的优劣和适用场景。一般可以从这么几个角度来衡量排序算法: 1.最好时间复杂度、最坏时间复杂度、平均时间复杂度 2.是否是原地排序算法:原地排序算法,指空间复杂度为O(1) 3.是否是稳定排序算法:稳定排序算法,指如果待排序序列中有值相等的元素,经过排序之后,值相等元素的顺序保持不变 关于快速排序: 代码实现: 排序算法(快速排序) 标签:快速排序 遍历 大于 场景 void string div 关于 循环 原文地址:https://www.cnblogs.com/itall/p/11155113.html#描述快速排序:
1.如果要排序数组中下标从p到r之间的一组数据,我们选择p到r之间的任意一个数据作为pivot(分区点)
2.遍历p到r之间的数据,将小于pivot的数据放到左边,将大于pivot的数据放到右边,将pivot放到中间
3.如此,则将p到r之间的数据分成了三个部分,前面p到q-1之间的数据都小于pivot,中间是pivot,后面q+1到r之间的数据都大于pivot
4.根据分治思想,通过递归排序从p到q-1之间的数据,和下标从q+1到r之间的数据,直到区间缩小为1,则所有数据都有序了
5.递推公式:
quick_sort(p…r) = quick_sort(p…q-1) + quick_sort(q+1, r)
终止条件:
p >= r
// 第一步:分区函数
public static int partition(int[] a,int low,int high){
// 选取第一个元素作为pivot(分区点)
int tmp = a[low];
// 循环处理low
上一篇:Python7_内置函数总结