前端旧约

今天做别人不愿意做的事, 明天做别人不能做的事

为什么快速排序是不稳定的

排序算法不稳定的含义

在排序之前,有两个数相等,但是在排序结束之后,它们两个有可能改变顺序,这就是说明该排序算法具有不稳定性。

快排不稳定

假设待排序数组: a = [ 1, 2, 2, 3, 4, 5, 6 ];

在快速排序的随机选择比较子(即pivot)阶段:

若选择a[2](即数组中的第二个2)为比较子,而把大于等于比较子的数均放置在大数数组中,则a[1](即数组中的第一个2)会到pivot的右边, 那么数组中的两个2非原序(这就是“不稳定”)。

若选择 a[1] 为比较子,而把小于等于比较子的数均放置在小数数组中,则数组中的两个 2 顺序也非原序 。

这就说明,quick sort是不稳定的。

posted on 2020-05-17 17:54  前端旧约  阅读(9000)  评论(0编辑  收藏  举报

导航