数据结构 — 选择排序
来源:互联网 发布:求免费数据恢复软件 编辑:程序博客网 时间:2024/05/22 13:13
选择排序
选择排序其实算是排序家族当中比较容易理解的排序方法.选择排序的思想最重要的就是这个选择. 你不是要排序嘛. 那么每次在你的所有数据当中
选出来最小的哪一个放到前面. 然后再次选一个次小的放到第二个的位置. 听起来跟插入排序很相似. 但是这里有很大的不同. 插入排序是不同的元
素找位置住下来. 选择排序是不同的位置找元素来住.但是呢两者的目的都是相等的. 但其实吧插入排序是优于选择排序的,你这样想选择排序他要找
到最小的他必须把这一组数据遍历完. 而插入排序每次其实不一定会把所有数据遍历完,有时候只需要循环一次就插入了. 但是今天我们的主题是选择
排序,那么我就不损选择排序了.
其实选择排序的过程非常容易具体分为三个步骤:
1.从你需要排序的序列找出最小的元素.
2.如果最小元素不是待排序列的第一个元素,将其和第一个元素互换.
3.从余下N-1个元素中,找出关键字最小的元素,重复(1)(2)操作,直到排序结束.
实现代码:
void ChooseSort(int* a, size_t size){int mix = 0;for (int i = 0; i < size; i++){mix = i;for (int j = i + 1; j < size; ++j){if (a[mix] > a[j]){mix = j;}}swap(a[i], a[mix]);}}
简单选择排序的比较与序列的初始序列没有关系,就算你给我的时候就是一个有序的序列. 选择排序还是会老老实实的去循环查找,因为我不遍历
完根本就不知道我到底是不是最小的. 假设待排序列有N个元素,则比较次数总是N(N-1)/2. 所以时间复杂度无论无何都是O(N^2).
算法名称 最差时间复杂度 平均时间复杂度 最优时间复杂度 空间复杂度 稳定性
选择排序 O(n2) O(n2) O(n2) O(1) 不稳定
阅读全文
0 0
- 数据结构 — 选择排序
- 数据结构——选择排序
- 数据结构——选择排序
- 数据结构——选择排序
- 数据结构&算法实践—【排序|选择排序】选择排序
- 数据结构 排序 选择排序
- 【数据结构】:排序--选择排序
- 数据结构例程——选择排序之直接选择排序
- 数据结构学习(十四)——选择排序
- 【数据结构与算法】——选择排序
- 【数据结构与算法】——选择排序
- 数据结构跑路篇——选择排序
- 数据结构&算法实践—【排序|选择排序】堆排序
- 数据结构之选择排序
- 数据结构-选择类排序
- 数据结构算法----选择排序
- 【数据结构】选择排序
- 数据结构-选择排序算法
- 常用的排序算法
- 顺序栈的简单操作
- SpringBoot 实现WebSocket进行消息发送(适用于SpringMVC)
- Netty框架服务端主动向客户端通信
- 简单的弹窗应用(二)--AlertDialog
- 数据结构 — 选择排序
- 第十二周项目一Dijkstra算法的验证
- 【20171120】C语言每日一练
- 来一波面试题
- DSS 代码分析【TimeoutTask】
- MyEclipse8.5汉化方法
- 1135. Is It A Red-Black Tree (30) 红黑树
- xutils3:ViewUtils.inject,没有inject方法或者没有ViewUtils类
- 如何成为一名推荐系统工程师