摘要: 拿{ 6,2,4,6,1}举例。a[0]a[1]a[2]a[3]a[4]62461有两个6,a[0]和a[3]。排序结果就有两种可能:12466原a[4]原a[1]原a[2]原a[0]原a[3]原a[4]原a[1]原a[2]原a[3]原a[0]如果排序结束后,a[0]可以保证一定在a[3]前头,也就是他们原有的顺序不变,那这种排序算法就是稳定的。(比如常见的冒泡排序、基数排序、插入排序、归并排序、桶排序、二叉树排序等都是稳定的排序算法)反之,如果不能保证原有顺序,这种算法就是不稳定的。(比如常见的选择排序,希尔排序,堆排序,快速排序等都是不稳定的排序算法)要证明一种排序算法不稳定,举出一组例子 阅读全文
posted @ 2014-01-23 05:47 Hydor 阅读(9849) 评论(0) 推荐(6) 编辑
摘要: 算法思路:每趟走访元素揪出一个最小(或最大)的元素,和相应位置的元素交换。(用数组{6,9,13,2,4,64} 举例){},{6 9 13 【2】 4 64} //第一趟,揪出2{2},{ 9 13 6 4 64} //把2和第一位的元素互换{2},{ 9 13 6 【4】 64} //第二趟,揪出4{2 4},{ 13 6 9 64} //把4和第二位的元素互换... ...性质:选择排序是一种原地排序(只有常数个元素存到数组以外的空间),最坏的时间复杂度,和平均时间复杂度都是n2。它是不稳定的排序算法。。*... 阅读全文
posted @ 2014-01-23 05:17 Hydor 阅读(1337) 评论(0) 推荐(1) 编辑