复习选择排序法:https://blog.csdn.net/tq_1999/article/details/99437935
参考:https://blog.csdn.net/chao_shine/article/details/88380597
冒泡排序基本思想:
两两交换,每次排序将最大值放后面,最小值放前面。
当i=1时,要两两比较7次,即n-1次。才能8个数中取出最大值。
数值 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | |
7 | 8 | 6 | 5 | 4 | 3 | 2 | 1 | ||
7 | 6 | 8 | 5 | 4 | 3 | 2 | 1 | ||
7 | 6 | 5 | 8 | 4 | 3 | 2 | 1 | ||
7 | 6 | 5 | 4 | 8 | 3 | 2 | 1 | ||
7 | 6 | 5 | 4 | 3 | 8 | 2 | 1 | ||
7 | 6 | 5 | 4 | 3 | 2 | 8 | 1 | ||
7 | 6 | 5 | 4 | 3 | 2 | 1 | 8 |
当i=2时,要两两比较6次,即n-2次。才能7个数种取出最大值。
数值 | 7 | 6 | 5 | 4 | 3 | 2 | 1 |
6 | 7 | 5 | 4 | 3 | 2 | 1 | |
6 | 5 | 7 | 4 | 3 | 2 | 1 | |
6 | 5 | 4 | 7 | 3 | 2 | 1 | |
6 | 5 | 4 | 3 | 7 | 2 | 1 | |
6 | 5 | 4 | 3 | 2 | 7 | 1 | |
6 | 5 | 4 | 3 | 2 | 1 | 7 |
依次类推,一共要遍历8会,即n回。
#include<stdio.h>
void bubble(int a[ ],int n);
//a是等待排序的整形数组名,n数组a待处理的数组元素的数量。
int main()
{
int n,a[8];
int i;
printf("Enter n(n<=8):");
scanf("%d",&n);
printf("Enter a[%d]:",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
bubble(a,n);
printf("After sorted,a[%d]=",n);
for(i=0;i<n;i++)
printf("%3d",a[i]);
return 0;
}
void bubble(int a [],int n)
{
int i,j,t;
for(i=1;i<n;i++) //外部循环
for(j=0;j<n-i;j++)//内部循环
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
Enter n(n<=8):8
Enter a[8]:8 7 6 5 4 3 2 1
After sorted,a[8]= 1 2 3 4 5 6 7 8
来源:CSDN
作者:超人琪
链接:https://blog.csdn.net/tq_1999/article/details/104033679