在判断选择排序算法是否稳定之前,首先要了解两个问题,第一排序算法的实现原理,第二,如何衡量一个排序算法是否稳定,下面针对这两个问题进行介绍
选择排序实现原理
1
选择排序算法的原理:每次从待排序的数据集合中找到最小值(或者最大值),然后将这个值放到序列的起始位置,之后的元素则依次放到序列的之后位置,直到全部待排序的数据元素排完
2
选择排序算法的实现如下:for(int i=0; i
3
选择排序算法的复杂度是O(n*n),空间复杂度为1,这个算法的执行效率当n相对小的时候,效率比较快,但是n一旦扩大,效率将会下降明显
算法稳定性
1
在待排序的数据中,存在多个相同的数据,经过排序之后,他们的对相对顺序依旧保持不变,实际上就是说array[i]=array[j],i
2
也就是说,只要能举出一个反例来说明这个算法不稳定,那么这个算法就是不稳定的就是有一个反例证明存在array[i]=array[j],i
3
针对排序算法,我们举出一个实例,序列5 8 5 2 9, 这个在执行选择排序的时候,第一遍,肯定会将array[0]=5,交换到2所在的位置,也就是 2 8 5 5 9,那么很显然,之后的排序我们就会发现,array[2]中的5会出现在原先的array[0]之前,所以选择排序不是一个稳定的排序