发现.net排序算法的Bug!.Net Framework 的ArrayList的Sort使用了快速排序算法,只要加入的元素实现IComparable接口,就可调用Sort方法快速排序,但最近在编程中发现了此算法的Bug,如下例子。
期望输出:3,1,2,4,6,5实际输出:4,6,5,3,1,2发现在排序的过程中,对于相等的对象,排序后前后位置被折半对调了,所以如果排序的对象中如果相等,输出不能保证原来的顺序。