算法第1篇——选择排序
来源:互联网 发布:sql应用开发培训 编辑:程序博客网 时间:2024/06/18 15:24
选择排序的C++代码:
template<typename T>void selectionSort(T arr[], int n) { for (int i = 0; i < n; i++) { //寻找[i, n)区间里的最小值 int minIndex = i; for (int j = i + 1; j < n; j++) { if (arr[j] < arr[minIndex]) { minIndex = j; } } swap(arr[i], arr[minIndex]); }}
在开始之前,自己根据上面的代码演算一遍。
选择排序
选择排序的总体思路:选择最小的元素放在第1位,再选择次小的元素放在第2位…
上面代码中,内层循环就是用来寻找最小元素的:
//寻找[i, n)区间里的最小值int minIndex = i;for (int j = i + 1; j < n; j++) { if (arr[j] < arr[minIndex]) { minIndex = j; }}
每次寻找次小元素时,并不都是从索引为0的位置开始,而是承接上次外层循环中i的位置,因为i之前的元素都是已排序的。
找到次小元素之后,再将这个次小元素与i元素交换:
swap(arr[i], arr[minIndex]);
动画演示
https://visualgo.net/zh/sorting
阅读全文
0 0
- 算法第1篇——选择排序
- 排序算法(1)——选择排序
- 排序算法—选择排序
- 排序算法1—插入排序、选择排序、冒泡排序
- 选择排序——一步一步算法篇
- 排序算法之选择排序——简单选择排序
- 数据结构&算法实践—【排序|选择排序】选择排序
- 算法 —— 选择排序
- 算法——选择排序
- 【算法】——选择排序
- 算法基础—选择排序
- Java算法—选择排序
- 【算法系列】—选择排序
- (1)排序算法——选择排序
- java排序算法(1)—选择排序
- 排序算法之——选择排序
- 排序算法——选择排序
- 排序算法——选择排序
- 程序设计理论基础
- js和URL的传递、窗口的打开
- Oracle性能优化之统计分析
- 【KMP】HDU 6153 A Secret
- Android Studio 自带的模拟器 (avd模拟器)开机提示需要输入密码的问题
- 算法第1篇——选择排序
- Delphi下获取系统默认的UserAgent的方法
- 【LEDE】树莓派上玩LEDE终极指南-98-Node.js和NPM在LEDE上存在的问题和解决方案
- Visual Studio Code
- 爬今日头条文章
- 锁
- HDU2089 不要62
- ubuntu 静动态ip以及dns配置
- HTML5 标准规范