数据结构与算法-----选择排序
来源:互联网 发布:淘宝刷单注意事项 编辑:程序博客网 时间:2024/05/22 12:15
选择排序
12 13 15 23 20 31 19 26 24
1)算法
首先在未排序序列中找到最小元素,并于该序列的首元素做交换,再从剩余的未排序序列中继续寻找最小元素重复以上过程,直到未排序序列中仅剩一个元素为止。
2)评价
平均时间复杂度O(N^2),稳定,对数据的有序性不敏感。相对冒泡而言,因为交换的次数少,略优于冒泡。
实现要点:
1 由于不知道最小值,那么假设一个值是最小值,那么就假设数组的第一个下表的位置i是最小值min,也即min=i;
2 找到所有数中的最小值,重点是最小值的位置,无需关心值是什么
3 找到最小值之后交换最小值和首元素的位置即可
设计重点:
如果假设的最小值min的位置一直是i,那么位置无需交换,否则交换。
#include<iostream>#include<cstdlib>using namespace std;int getRandom(){ int num=rand()%100; return num;}int* getArray(int *data,int size){ int num; for(int i=0;i<size;++i){ num=getRandom(); data[i]=num;// *(data+i)=i; } return data;}void Print(int *data,int size){ for(int i=0;i<size;++i){ cout<<data[i]<<' '; } cout<<endl;}void chioceSort(int *data,int size){ for(int i=0;i<size-1;++i){ int min=i; for(int j=i+1;j<size;++j){ if(data[j]<data[min]) min=j; } if(min!=i){ int tmp=data[i]; data[i]=data[min]; data[min]=tmp; } }}int main(){ int *data; int size; cout<<"Pls input the size:"; cin>>size; srand(time(0)); int* tmp=getArray(data,size); chioceSort(tmp,size); Print(tmp,size); return 0; }
1 0
- 【数据结构与算法】选择排序
- 数据结构与算法-选择排序
- 数据结构与算法-----选择排序
- 【数据结构与算法】选择排序
- 【数据结构与算法】选择排序
- 数据结构与算法---选择排序
- 算法与数据结构---选择排序
- 数据结构与算法-排序:选择排序
- [数据结构与算法]简单选择排序算法
- 选择排序 Java数据结构与算法
- python数据结构与算法 31 选择排序
- 【数据结构与算法 02】选择排序
- <三>java数据结构与算法 选择排序
- 【数据结构与算法】——选择排序
- 数据结构与算法:C++实现选择排序
- 数据结构与算法简记:选择排序
- 【数据结构与算法】——选择排序
- scala数据结构与算法-06-选择排序
- easyui-messager消息窗口组件
- 使用VideoView全屏播放视频文件
- SQL优化34条
- php入门(数据库)
- 归类说明stackoverflow-ios
- 数据结构与算法-----选择排序
- 【FAQ】Apple移动设备处理器指令集 armv6、armv7、armv7s及arm64
- 从头认识java-11.5 扫描输入(2)-scanner的边界与使用正则表达式扫描
- 详解文本属性Attributes
- 获取ResultSet记录数
- 读书笔记--View的事件体系(一)
- primeface eg
- java中synchronized用法
- 自己动手写一个野指针检查工具