基本思想:首先,选出最小的数,放在第一个位置;然后,选出第二小的数,放在第二个位置;以此类推,直到所有的数从小到大排序
#include<stdio.h> #include<stdlib.h> void SelectSort(int a[],int len){ int i,j,temp; int k; for(i=0;i<len;i++){ temp=i; for(j=i+1;j<len;j++){//这个循环用来找出第i到len个数中最小的值 if(a[j]<a[temp]){ temp=j; } } if(temp!=i){//将这个最小值放到i位置上他同时也是第i小 k=a[i]; a[i]=a[temp]; a[temp]=k; } } } void main(){ int i; int a[5]={2,4,5,7,1}; SelectSort(a,5); for(i=0;i<5;i++){ printf("%d ",a[i]); } }