浅谈冒泡排序
排序方法是一种重要的、基本的算法。排序的方法很多,冒泡排序法就是其中的一种。冒泡排序法的基本思路是:每次将相邻的两个数比较,将较小的调到前面。若有六个数,9,8,5,4,2,0,第一次先将最前面的两个数8和9对调(见图一)。第二次将第2和第3个数(9和5)对调,如此共进行5次,得到8-5-4-2-0-9的顺序,可以看到最大的数9已经“沉底”,成为最下面一个数,而小的数“上升”。最小的数0已经向上浮起一个位置。经过第一趟(共5次比较与交换)后,已得到最大的数9。然后进行第二趟比较,对余下的前面5个数(8,5,4,2,0)进行新一轮的比较,以便使次大的数“沉底”。按以上方法进行第二趟比较,。经过这一趟4次比较与交换,得到次大的数8.。
按此规律进行下去,可以推知对6个数要比较5趟,才能使6个数按大小顺序排列。在第1趟中要进行两个数之间的比较共5次,在第二趟过过程中比较4次……第5趟只需比较一次。
如果有n个数,则要进行n-1趟比较。在第一趟中要进行n-1次两两比较,在第j趟比较中要进行n-j次两两比较。
例:
#include <stdio.h>
int main()
{
int a
int i,j,t;
printf("输入十个数:\n");
for(i-0;i<10;i++)
scanf("%d",&a);
printf("\n")
for(j=0;j<9;j++)
for(i=0;i<9-j;i++)
if(a>a)
{
t=a;a=a;a=t;};
}
printf("排序后为:\n“);
for(i=0;i<10;i++)
printf("%d",a);
printf("\n")
return 0;
} {:10_245:} 想问下大佬,我学python要学这种算法么 {:5_95:} {:5_106:} {:5_106:} 柿子饼同学 发表于 2021-3-16 21:18
想问下大佬,我学python要学这种算法么
算法就像是乐谱一样,不局限于任何乐器,同样算法也是不就是解决问题的方法{:10_334:}
页:
[1]