选择排序
来源:互联网 发布:域名云解析有什么用 编辑:程序博客网 时间:2024/05/21 22:36
基本思想:
在要排序的一个数组中,选择最大或最小的元素与首位或末尾的元素交换;然后,在剩下的元素中继续选择最大或最小的元素与首位或末尾的元素交换;以此类推,直到第n-1个元素交换完毕。
操作方法:
第一趟,从n 个记录中找出关键码最小的记录与第一个记录交换;
第二趟,从第二个记录开始的n-1 个记录中再选出关键码最小的记录与第二个记录交换;
以此类推.....
第i 趟,则从第i 个记录开始的n-i+1 个记录中选出关键码最小的记录与第i 个记录交换,
直到整个序列按关键码有序。
算法的实现:#include"iostream"using namespace std;void SelectSort(int arr[], int length){for (int i = 0; i < length - 1; i++){int x = arr[i];int index = i;for (int j = i + 1; j < length; j++){if (arr[j] < x){x = arr[j];index = j;}}arr[index] = arr[i];arr[i] = x;}}int main(){int arr[10] = { 1, 8, 9, 4, 3, 2, 6, 5, 7, 10 };for (int i = 0; i < 10; i++){cout << arr[i] << " ";}cout << endl;SelectSort(arr, 10);for (int i = 0; i < 10; i++){cout << arr[i] << " ";}cout << endl;system("pause");}
实践复杂度:O(n^2)。空间复杂度:1。
0 0
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序:
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- assert()断言函数以及NODEBUG用法总结
- leetcode 哈希表专题-Word Pattern
- Python 代码调试技巧
- 1005. 继续(3n+1)猜想 (25)
- Android 动画效果弹出PopupWindow,同时屏幕背景变暗
- 选择排序
- HBase 中存储结构
- SQL FOREIGN KEY 约束 高级教程
- c++的传递的二进制流进行文件上传操作
- BSD GPL Apache 开源协议
- iOS本地推送
- MySQL、Oracle、SQL Server查询前n条记录
- Delphi XE7使用手机调试Android出现[Install_Parse_Failed_Inconsistent_Certificates]问题
- android 软键盘 InputMethodManager