博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SelectSort 选择排序
阅读量:4097 次
发布时间:2019-05-25

本文共 899 字,大约阅读时间需要 2 分钟。

SelectSort 选择排序算法:

总的时间复杂度为O(n^2)

思路是,外循环先遍历第一个数至倒数第二个,设置最小的那个数的索引,内循环为从i+1开始遍历到最后一个,找出有没有比当前最小数索引小的索引,若有,进行交换,难度不大~

性能优于冒泡排序

//选择排序(排序后为从小到大)#include 
#include
using namespace std;void SelectSort(int (&a)[7]){//数组作为引用形参传入,使用在此修改对原数组也有效 int aSize = sizeof(a) / sizeof(a[0]);//取数组的大小 int min;//设置最小的那个数的索引 for (int i = 0; i < aSize - 1; ++i){//遍历第一个数至倒数第二个 min = i;//初始最小的数的索引为i for (int j = i + 1; j < aSize;++j){//从i+1开始遍历到最后一个 if (a[j] < a[min]){//若成立,则将小的那个数的索引j赋给min min = j; } } if (min != i){//如果最小的数的索引不等于初始的i,则进行交换,将此时最小的数换到i位置 swap(a[min], a[i]); } }}int main(){ int a[] = {12, 42, 6, 17, 32, 4, 19 }; cout << "Before Sorted:" << endl; for (size_t i = 0; i < 7; ++i){//输出 cout << a[i] << " "; } cout << endl; SelectSort(a); cout << "After Sorted:" << endl; for (size_t i = 0; i < 7; ++i){//输出 cout << a[i] << " "; } cout << endl; return 0;}

程序输出结果:

你可能感兴趣的文章
聊聊gcc参数中的-I, -L和-l
查看>>
[C++基础]034_C++模板编程里的主版本模板类、全特化、偏特化(C++ Type Traits)
查看>>
C语言内存检测
查看>>
Linux epoll模型
查看>>
Linux select TCP并发服务器与客户端编程
查看>>
Linux系统编程——线程池
查看>>
基于Visual C++2013拆解世界五百强面试题--题5-自己实现strstr
查看>>
Linux 线程信号量同步
查看>>
C++静态成员函数访问非静态成员的几种方法
查看>>
类中的静态成员函数访问非静态成员变量
查看>>
C++学习之普通函数指针与成员函数指针
查看>>
C++的静态成员函数指针
查看>>
Linux系统编程——线程池
查看>>
yfan.qiu linux硬链接与软链接
查看>>
Linux C++线程池实例
查看>>
shared_ptr简介以及常见问题
查看>>
c++11 你需要知道这些就够了
查看>>
c++11 你需要知道这些就够了
查看>>
shared_ptr的一些尴尬
查看>>
C++总结8——shared_ptr和weak_ptr智能指针
查看>>