C++选择排序
2021/11/4 12:10:52
本文主要是介绍C++选择排序,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
如果你已经熟悉了上一节冒泡排序代码 +
讲解,那么这一节对你来说很容易,因为选择排序像是冒牌排序的优化版本,在第二次循环中,它减少了每次比较满足条件后,两个值的交换过程。它直接用一个值存储当前最小值在数组中的下标,让此值作标准值跟待比较的值比较。不多说了,这个看代码更直观。相对于冒泡排序,步骤更少一点,也不需要来回的赋值交换,因此是优化版本的冒泡排序。
#include <iostream> #include <string> #include <stdlib.h> using namespace std; int data[10] = {0, 2, 1, 4, 3, 6, 5, 8, 7, 9}; void swap(int temp_i, int temp_j) { int temp_int = 0; temp_int = data[temp_i]; data[temp_i] = data[temp_j]; data[temp_j] = temp_int; if(temp_j == 9) { cout << "swap : " << temp_j << " : " << data[temp_j] << " : " << data[0] << endl; } } void select(int* data) //int data[] { for(int i = 0; i < 10; i++) //左->右 大->小 { int max_index = i; for(int j = i; j < 10; j++) { if(data[max_index] < data[j]) { max_index = j; } } if(i == 0) { cout << "第一个最大9: " << max_index << " : " << data[max_index] << endl; } swap(i, max_index); } } int main(void) { for(int i = 0; i < 10; i++) { cout << i << " : " << data[i] << endl; } select(data); for(int i = 0; i < 10; i++) { cout << i << " : " << data[i] << endl; } return 0; }
这篇关于C++选择排序的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-04el-table 开启定时器下,表格的选中状态会消失是什么原因-icode9专业技术文章分享
- 2024-10-03如何安装和初始化飞牛私有云 fnOS?-icode9专业技术文章分享
- 2024-10-03如何安装 App 并连接到飞牛 NAS?-icode9专业技术文章分享
- 2024-10-03如何安装飞牛 TV 并连接到影视服务器?-icode9专业技术文章分享
- 2024-10-03如何在PVE和ESXI上安装飞牛私有云 fnOS?-icode9专业技术文章分享
- 2024-10-03fnOS国产最强NAS安装系统异常情况处理-icode9专业技术文章分享
- 2024-10-03飞牛NAS如何创建存储空间?-icode9专业技术文章分享
- 2024-10-03fnOS国产最强NAS硬盘会自动休眠吗?-icode9专业技术文章分享
- 2024-10-03fnOS国产最强NAS如何安装飞牛影视和创建媒体库?-icode9专业技术文章分享
- 2024-10-03fnOS国产最强NAS如何为家人朋友开通影视账号?-icode9专业技术文章分享