排序之简单选择排序
来源:互联网 发布:淘宝买白酒是真的吗 编辑:程序博客网 时间:2024/05/18 12:36
选择排序:通过n-i次关键字的比较,从n-i+1个记录中,选出关键字最小的记录,和第i个记录交换。
选择排序的关键,我认为,在于只进行了一次交换,因为引入了一个变量min,可以存储关键字最小的记录。
就时间复杂度上而言,由于简单排序时,比较和交换是分开的。因此要从两个方面考虑。
比较的次数:(n-1)+(n-2)+..+1 = (n-1)n/2;
交换的次数:最好的时候:0次;
最差的时候:n-1次。
因此总的时间复杂度为O(n2)。
/*选择排序:通过n-i次关键字之间的比较,找到n-i+1个关键字中最小的记录,并与第i个记录交换*/#include<iostream>using namespace std;#define M 6void swap(int *a, int m, int n){int temp;temp = a[m];a[m] = a[n];a[n] = temp;}void Selectsort (int *a,int length){int i,j,min;int m = length-1;for(i=0;i<m;i++){min = i;for(j=i+1;j<=m;j++){if(a[min]>a[j])min = j;}if(i != min)swap(a,min,i);}}int main (){int r[M];for(int i=0;i<M;i++)r[i]=rand()%M;for(int i=0;i<M;i++)cout<<r[i];cout<<endl;Selectsort(r,M);for(int i=0;i<M;i++)cout<<r[i];return 0;}
0 0
- 简单排序之选择排序
- 排序之简单选择排序
- 排序之简单选择排序
- 选择排序之简单选择
- 选择排序之简单选择
- 选择排序之----简单选择排序
- 选择排序之简单选择排序
- 选择排序之简单选择排序
- 选择排序之简单选择排序
- 选择排序之简单选择排序
- 1-- 选择排序之简单选择排序
- 选择排序之简单选择排序
- 选择排序之--简单选择排序
- 选择排序之简单选择排序
- 选择排序初步之 简单选择排序
- 内部排序之选择排序:简单选择排序,堆排序
- 简单排序之简单选择排序
- 排序算法之二:选择排序之【简单选择排序】
- PS流
- js变量存在的两种类型(原始值,引用值)
- C++ 快速排序算法
- 递归删除多级文件夹及文件
- 网络爬虫之requests库中两个重要的对象
- 排序之简单选择排序
- vertical-align属性详解
- 函数调用
- hdoj 5444 Elven Postman (二叉树 创建+查找)
- hadoop-note 1
- ElasticSearch(ES)中的分片查询方式
- 野指针
- Spark集群启动之Master、Worker启动流程源码分析
- Linux下的lds链接脚本<一>