选择排序 基本思路 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; }