4.3 选择排序
Posted 极夜编程
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了4.3 选择排序相关的知识,希望对你有一定的参考价值。
4.3 选择排序
选择排序(Selection Sort)
有了冒泡排序为什么还要发明选择排序?冒泡排序有个很大的弊端,就是元素交换次数太多了。
这还只是完成了冒泡排序的第一轮操作。如果继续下去,同学们心里恐怕会想:“这体育老师是不是有毛病啊?”
在程序运行的世界里,虽然计算机并不会产生什么负面情绪,但是频繁的数组元素交换意味着更多的内存读写操作,严重影响了代码运行效率。
有一个简单的办法,就是每一次找到个子最矮的学生,直接交换到队伍的前面。
例如一个有8个数字组成的无序序列,进行升序排序。
算法分析
算法每一轮选出最小值,再交换到左侧的时间复杂度是O(n),一共迭代n-1轮,总的时间复杂度是O(n2)。
由于算法所做的是原地排序,并没有利用额外的数据结构,所以空间复杂度是O(1)。
【视频讲解】
以上是关于4.3 选择排序的主要内容,如果未能解决你的问题,请参考以下文章
常见排序算法基本原理及实现(快排,归并,堆排,直接插入.....)
常见排序算法基本原理及实现(快排,归并,堆排,直接插入.....)