直接选择排序
通过设置标志位,将标志位的数字与标志位后最小的数字进行交换,递增标志位,知道标志位到达最后一位。
代码实现
直接选择排序.png结果
直接排序结果.png具体过程
下面展示的是通过一个Android的程序来实现的直接选择排序的一个变化过程(数据随机生成 ,蓝色圆圈代表选中的最小,黑色代码排序好的,红色代表未排序的)
直接选择排序动画显示.gif
- 第一趟:从第一个开始选择整个列表中最小数字5,将5与第一个数字交换。
- 第二趟 :从第二个开始选择整个列表中最小数字9,将9与第二个数字交换。
......
直到最后从小到大排完。
总结
直接选择排序的空间时间复杂度都为:O(n²),因此从效率上来讲,如果数据足够多的时候,时间效率上不会很高。但从代码算法上来看,所占用的空间小,实现简单。
另附java代码实现:
直接选择排序-java.png
网友评论