选择排序
基本思路
1 选择n个数里面一个最小的数
2 将这个最小的数和第一个数交换位置 再将剩余的n-1个数 选出最小的数
与第二个数 做交换
3 重复上面的步骤即可
示例代码如下:
#include<stdio.h>
#include<iostream>
using namespace std;
//以下是选择排序函数 核心代码
void selection(int *a,int n){
int k,t;
for(int i=0;i<n-1;i++){
k=i; //默认第i位是最小的
for(int j=i+1;j<n;j++){
if(a[j]<a[k]) //因为最开始默认的还小 a[j]肯定是最小的 将啊a[j]最小数的下标存到k中
k=j;
}
if(k!=i){ //交换的两种写法
t=a[i];
a[i]=a[k];
a[k]=t;
//swap(a[i],a[k]);
}
printf("第%d次排序结果:",i);
for(int i=0;i<10;i++){
cout<<" "<<a[i];}
cout<<endl;
}
}
//主函数
int main(){
int len=10;
int a[10]={2,1,1,5,15,0,12,4,8,7};
selection(a,len);
return 0;
}
3667

被折叠的 条评论
为什么被折叠?



