首页 > 编程知识 正文

直接选择排序代码,简单选择排序是直接选择排序

时间:2023-05-05 00:32:35 阅读:147790 作者:2807

1 .排序原理选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。

最稳定的排序算法之一,无论输入什么数据都是o(n2 )的时间复杂度,所以使用它时数据规模越小越好。 唯一的好处可能是不占用多余的内存空间。 理论上,选择排序也可能是平时普通人最想的排序方法。

2 .基本过程n个记录的文件的直接选择排序经过n-1次直接选择排序后得到有序的结果。 (1)找出未排序的序列中最小)大)要素,收纳在排序序列的开头。

)2)继续从剩下的未排序要素中寻找最小(大)要素,并放置在已排序序列的末尾。

)3)这样类推,直到所有要素都被排序。

3.python代码定义defselect_sort(s ) : #forIinrange(len ) s )-1 )循环len(s ) -只需一次) I#变量k的原因是什么是确定的最小元素,检查是否需要交换s[k],s[i]=s[i],s [ k ] returnss=[ 3,2,5,1,8 ] select _ sort (s )代码执行结果

4 .算法分析的最佳情况: t(n )=o ) n2 )最坏情况: t ) n )=o ) n2 )平均情况: t ) n )=o ) n2 ) ) ) ) ) ) ) )

空间复杂度在o(1)不稳定。

解释一下不稳定性为何:

选择排序就是在每个位置选择当前元素最小的。 例如,在第一个位置选择最小的,在剩下的要素中选择第二个要素中第二小的,依次类推到第n-1个要素。 第n个要素可以不选择。 因为只剩下一个最大的要素。 那么,在一次选择中,如果当前元素小于一个元素,且该小元素出现在与当前元素相等的元素之后,则会破坏交换后的稳定性。 比较拗音发现,例如排序5.8-5.2-9,在第一遍选择第一个元素5就会对调2,因为在原排序中两个5的相对前后顺序会被打乱,所以选择排序不是一种稳定的排序算法。

由此可见,直接选择排序效率不高。 如果你想提高效率,你应该使用堆积排序! 堆叠排序是一种高效的选择排序算法,其详细介绍见下一节。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。