2012年(106)
分类: C/C++
2012-05-07 17:06:39
5、选择排序(升序)
思路:N个数,每次从剩下的数中选择最小的数(记住它的下标)与这组数中最前面的数交换
,数的个数依次减少。一趟排序完成后最前面的数最小。共进行N-1趟排序。
完整程序
#include
#define N 10
int main()
{
int num[N];
int i,j,k;
int t;
for(i=0;i scanf("%d",&num[i]); for(i=0;i { k=i; for(j=i+1;j if(num[k]>num[j]) k=j; if(k!=i) {t=num[k];num[k]=num[i];num[i]=t;} } for(i=0;i printf("%d ",num[i]); return 0; } 封装函数 void xuanze(int num[N]) { int i,j,k; int t; for(i=0;i { k=i; for(j=i+1;j if(num[k]>num[j]) k=j; if(k!=i) {t=num[k];num[k]=num[i];num[i]=t;} } } 调用函数 #include #define N 10 int main() { int num[N]; int i,j,k; int t; void xuanze(int num[N]); for(i=0;i scanf("%d",&num[i]); xuanze(num); for(i=0;i printf("%d ",num[i]); return 0; }