14. 蛤蟆的数据结构进阶十四排序实现之简单选择排序
本篇名言:“即是我们是一支蜡烛也应该 "
蜡烛成灰泪始干 " 即使我们只是一根火柴也要在关键时刻有一次闪耀即使我们死后尸骨都腐烂了解也要变成磷火在荒野中燃烧。 --
艾青”
继续来看什么是简单选择排序。
欢迎转载,转载请标明出处:
1. 简单选择排序
设所排序序列的记录个数为n。i取1,2,…,n-1,从所有n-i+1个记录(Ri,Ri+1,…,Rn)中找出排序码最小的记录,与第i个记录交换。执行n-1趟后就完成了记录序列的排序。
2. 代码
代码比较简单,详看源码。
执行后如下:
3. 源码
#include
"stdio.h"
/**
*
数组的最小值
*
* @return int
数组的键值
*/
int SelectMinKey(int
a[],int
n,
int i)
{
int k= i;
for(intj=i+1 ;j<
n;++j) {
if(a[k]>
a[j]) k = j;
}
returnk;
}
/**
*
选择排序
*
*/
void selectSort(int
a[],int
n){
intkey, tmp;
for(int i= 0; i<
n; ++i) {
key= SelectMinKey(a,
n,i);
//选择最小的元素
if(key!= i){
tmp=
a[i]; a[i] =
a[key];a[key]= tmp;
//最小元素与第i位置元素互换
}
}
}
int main(){
inta[8] = {3,1,5,7,2,4,9,6};
printf("初始值:");
for(intj= 0; j<8; j++){
printf("%d",a[j]);
}
printf("\n排序后:\n");
selectSort(a,8);
for(intj= 0; j<8; j++){
printf("%d",a[j]);
}
}
版权声明:本文为博主原创文章,未经博主允许不得转载。