多语言展示
当前在线:1077今日阅读:27今日分享:41

选择排序稳定吗

在判断选择排序算法是否稳定之前,首先要了解两个问题,第一排序算法的实现原理,第二,如何衡量一个排序算法是否稳定,下面针对这两个问题进行介绍
选择排序实现原理
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]之前,所以选择排序不是一个稳定的排序

推荐信息