排序算法之选择排序
来源:互联网 发布:双喜软件有用吗 编辑:程序博客网 时间:2024/06/07 19:38
/*======================================================================================选择排序:首先,找到数组中最小的那个元素,其次,将它和数组的第一个元素交换位置(如果第一个元素就是最小元素那么它就和自己交换)。再次,在剩下的元素中 找到最小的元素,将它与数组的第二个元素交换位置。如此往复,直到将整个数组排序。这种方法 叫做选择排序,因为它在不断地选择剩余元素之中的最小者。========================================================================================最差时间分析:O(n2) 平均时间复杂度:O(n2) 稳定度:不稳定 空间复杂度:O(1)======================================================================================*/#include<iostream>#include<vector>using namespace std;// 交换两个参数的值template <typename T> // 函数模板 以适应各种类型void exch(T &a, T &b) { T i = a;a = b;b = i;}// 互换两个参数的值template <typename T> // 函数模板 以适应各种类型void exch(vector<T>&arr, const int a,const int b) { T i = arr[a];arr[a] = arr[b];arr[b] = i;}/*选择排序*/template <typename T>// 函数模板 以适应各种类型void sort_select(vector<T>&a) {int n = a.size(); // 获取数组长度for (int i = 0; i < n; i++) { // 从0位置到最后int min = i; // 初始化最小值所在位置为ifor (int j = i + 1; j < n; j++) // 从i+1位置到最后if (a[j] < a[min])min = j; // 更新最小值所在位置exch(a, i, min);// 将min位置值与i位置值互换}}int main() {vector<int>arr = { 1,3,5,1455,75,225,995,2,233,58,899,55 };sort_Bubble(arr);for (int i = 0; i < arr.size(); i++) {cout << arr[i] << " ";}/*for (auto &i : arr) { // 自动查看arr数组类型,每个循环i自动+1 ,i绑定 arr[i]cout << i << " ";}*/cout << "\n";system("pause"); //暂停以显示return 0;}
阅读全文
0 0
- 排序算法之选择排序
- 排序算法之选择排序
- 排序算法之选择排序
- 排序算法之选择排序
- 【排序算法】之选择排序
- 排序算法之选择排序
- 排序算法之选择排序
- 排序算法之选择排序
- 排序算法之选择排序
- 排序算法之选择排序
- 排序算法之选择排序
- 算法-排序之选择排序
- 排序算法之选择排序
- 排序算法之选择排序
- 排序算法之选择排序
- 排序算法之选择排序
- 排序算法之选择排序
- 排序算法之选择排序
- 在Vmware中安装CentOS7
- centos7下apache2.4.6虚拟主机配置
- Font Awesome图标字体库
- CNI:容器网络接口详解
- 计算糖果
- 排序算法之选择排序
- ORACLE 存储过程死锁
- HDU-6016(思维)(Count the sheep)
- /dev/目录下的内容与/proc/下文件devices中的内容有什么区别?
- z-index属性
- 查找算法之二分查找
- Windows7下安装golang语言开发环境和revel框架
- oracle多表插入
- PAT 1024科学计数法