简单选择排序的代码实现与思考
2016-06-06 15:27
246 查看
简单选择排序,每次在n-i+1个记录中选取最小的记录,作为有序序列中的第i个记录,选择排序的时间复杂度是O(n2),空间复杂度是O(1),是一种稳定的排序算法。
代码如下:
这几次的代码实现然我明白,把一些语句写成函数的形式有助于代码的易读性,并且提高代码的重用性。
代码如下:
#include<iostream> using namespace std; int selectMin(int *a,int i,int len) { int minIndex=i; int min=a[i]; for(int j=i;j<len;++j) { if(min>a[j]) { min=a[j]; minIndex=j; } } return minIndex; } void selectSort(int *a,int len) { for(int i=0;i<len;i++) { int j=selectMin(a,i,len); if(i!=j) { int temp=a[i]; a[i]=a[j]; a[j]=temp; } } } int main() { int a[]={49,38,65,97,76,13,27,49}; int len =sizeof(a)/sizeof(*a); selectSort(a,len); cout<<"排序后"<<endl; for(int i=0;i<len;++i) cout<<a[i]<<" "; cout<<endl; }
这几次的代码实现然我明白,把一些语句写成函数的形式有助于代码的易读性,并且提高代码的重用性。
相关文章推荐
- [深入学习C#]——IEqualityComparer<T>中GetHashCode的作用
- eclipse点击一个变量使相同名称变量高亮显示的方法
- java--排序算法之冒泡排序
- 误删python setuptools的解决方案
- C语言的标准和Gcc遵循标准
- javaIO流
- 深度探索C++关键字之 virtual
- odoo销售流程代码简单剖析
- 栈帧
- PHP7 + iis7配置
- Spring 的BeanUtils.copyProperties在拷贝属性时忽略空值
- php解析word文档
- 字典树的c++实现
- C++第七次作业
- 第14周项目1--排序函数模板
- Python正则匹配 -> 模块和基本函数
- Java转型(向上或向下转型)
- C++第七次做作业
- jdk安装配置
- Java内存模型之重排序