直接选择类排序算法思想和实现过程
2016-06-21 23:48
204 查看
直接选择类排序:
算法思想:假设有数据集合<3,2,5,8,4,7,6,9,1>,无序区间A【0】...A【8】,从无序区间中每次取出一个最大值(最小值),放到有序区间中,无序区间的长度减1;
算法实现过程:
//直接选择类排序
void SelectedSort(int a[],int n)
{
int i,j;
int kmin,t;
for(i=0;i<n-1;i++)
{
kmin=i;
for(j=i+1;j<=n;j++)
if(a[j]<a[kmin]) kmin=j;//找出无序区间的最小值
if(kmin-i)//最小值下标不是i,交换最小值和a[i];
{
t=a[i];
a[i]=a[kmin];
a[kmin]=t;
}
}
//输出排序后的数据集合
for(i=0;i<n;i++)
printf("%5d",a[i]);
}
算法思想:假设有数据集合<3,2,5,8,4,7,6,9,1>,无序区间A【0】...A【8】,从无序区间中每次取出一个最大值(最小值),放到有序区间中,无序区间的长度减1;
算法实现过程:
//直接选择类排序
void SelectedSort(int a[],int n)
{
int i,j;
int kmin,t;
for(i=0;i<n-1;i++)
{
kmin=i;
for(j=i+1;j<=n;j++)
if(a[j]<a[kmin]) kmin=j;//找出无序区间的最小值
if(kmin-i)//最小值下标不是i,交换最小值和a[i];
{
t=a[i];
a[i]=a[kmin];
a[kmin]=t;
}
}
//输出排序后的数据集合
for(i=0;i<n;i++)
printf("%5d",a[i]);
}
相关文章推荐
- 模式的秘密——策略模式
- Activity启动模式
- 自定义checkbox样式
- for循环执行流程
- MapReduce 进阶:Partitioner 组件
- oracle学习笔记----在线修改redo.log文件的大小
- Hibernate系统学习(一)
- MapReduce 进阶:Partitioner 组件
- MySQL压缩包的安装
- 统计学 决定系数(Coefficient of Determination) 和 相关系数 (Correlation of Coefficient )
- Redis配置
- maven管理工程,引入MyBatis、MySQL遇到的问题
- 线程同步的小例子
- Activity+Fragment选项卡整理(二)
- 【java并发编程】深入剖析ThreadLocal
- Linux下调试工具gdb的使用方法
- 欢迎使用CSDN-markdown编辑器
- 程序猿关注的微信公众号和网站
- 过滤器,绑定事件,动画
- 实战解读阿里fastjson基本操作