#include<stdio.h>
void swap(int *a,int *b);
int main(void)
{
int array[10]={9,4,5,6,8,3,2,7,10,1};
int i;
int k;
int c;
for(c=0;c<10;c++)
printf("%3d",array[c]);
putchar('\n');
for(k=0;k<9;k++)
{
for(i=0;i<10;i++)
{
if(array[i]>array[i+1])
swap(&array[i],&array[i+1]);
}
for(c=0;c<10;c++)
printf("%3d",array[c]);
putchar('\n');
}
return 0;
}
void swap(int *a,int *b)
{
int temp;
temp=*b;
*b=*a;
*a=temp;
void swap(int *a,int *b);
int main(void)
{
int array[10]={9,4,5,6,8,3,2,7,10,1};
int i;
int k;
int c;
for(c=0;c<10;c++)
printf("%3d",array[c]);
putchar('\n');
for(k=0;k<9;k++)
{
for(i=0;i<10;i++)
{
if(array[i]>array[i+1])
swap(&array[i],&array[i+1]);
}
for(c=0;c<10;c++)
printf("%3d",array[c]);
putchar('\n');
}
return 0;
}
void swap(int *a,int *b)
{
int temp;
temp=*b;
*b=*a;
*a=temp;
}
冒泡 第一次循环 通过与右端(左端)比较, 先把最大(最小)的挑选出来。
第二次循环 依然是重复上面 把 次大(次小) 的挑选出来。
...........
总之
冒泡排序是两个参数在动,在比较
选择排序是一静一动。