快速排序方法有哪些?
发布网友
发布时间:2022-04-30 01:47
我来回答
共1个回答
热心网友
时间:2022-05-22 02:52
快排的思想是(假设都是从小到大排列):
选一个值作为“轴值”,所有小于轴值的都移动到轴值左边,所有大于轴值的都移动到轴值右边。这一步是让数列变得较为有序
然后分别再对轴值的左边、右边分别进行快排,一步一步提高整个数列的有序程度,直到最后完全有序。
轴值的选取有多种方式,这里就假设是选正中间的一个
70,75,82,90,23,16,10,68
选择轴值 90,排列后得到:
70,75,82,23,16,10,68,(90)
括号括起来的我表示是轴值,这里运气不好,轴值选中了一个最大的
下面对轴值左边排序,在选择轴值为23:
16,10,(23),70,75,82,68
再分别对16, 10 和 70,75,82,68进行排序
一般快排在待排序的数字个数较少时,会选取其它排序来进行排列,比如插入排序。这里16,10数字个数已经太少,用插入排序排成10, 16
然后对 70,75,82,68进行排序……
整个排序过程就这样