基本思想:
每一轮比较时,默认本轮未排序的第一个元素为最小值, 然后依次跟后续元素比较,找到后续元素中的最小值, 如不符合排序顺序要求,则交换相邻元素.
/*
================================
Name : Basic.c
Author : weichang
Version :
Copyright : Your copyright notice
Description : Hello World in C, Ansi-style
================================
*/
#include <stdio.h>
#include <stdlib.h>
void display();
int a[10]={2,5,8,9,6,0,3,1,4,7};
int main(void) {
int i=0,j=0,min=0;
printf("排序前: ");
display();
for ( i = 0; i < 10; i++) {
for (min=i,j = i+1; j < 10; j++){
if(a[j] < a[min]){
min=j;
}
}
if(i != min){
printf(" ==> %d 和 %d 需要交换\n",a[i],a[min]);
int tmp=a[i];
a[i]=a[min];
a[min]=tmp;
}else{
printf(" ==> 不 需要交换\n");
}
printf("第%d轮排序后结果: ",i);
display();
}
return 0;
}
void display()
{
int k=0;
for( k=0;k<10;k++)
{
printf("%d ",a[k]);
}
//printf("\n");
}