证明冒泡排序的正确性

发布网友 发布时间:2022-04-24 11:18

我来回答

5个回答

热心网友 时间:2023-10-11 00:03

证明:
不失一般性,设一有序集A={a_{1},a_{2},...,a_{n}},CardA=n>=2;a_{k} 属于 R(k=1,2,...,n).

考察第一个元素,这种情况是显然的;
考察第二个元素a_{2},若是成立a_{1}<>a_{2}依照算法排序,并得到有序集A_1;
考察第三个元素a_{3},若是成立a_{3}<>前一个元素,依照算法交换位置,再比较换序后第二个元素与第一个元素的大小,若是成立不等关系,依照算法换序,得到有序集A_2;
...
如此下去得到排序后的有序集A_n-1,便是排序后的有序集且保证单调性;
证毕

热心网友 时间:2023-10-11 00:04

这个怎么证明嘛!就是一一比较然后大的数往下沉,然后小的数往上冒。如果有N个数,那么若两两都比较一次的话,就是N!次,
如果数组为a[100]的话,那么冒泡排序的C语言程序如下:
main()
{
int i,j,t,a[100];
printf("imput 100 numbers:");
for(i=0;i<100;i++)
scanf("%d",&a[i]);
for(i=0;i<99;i++)
for(j=0;j<99;j++)
if(a[j]<a[j+1])
{t=a[j];a[j]=a[j+1];a[j+1]=t;}
printf("\nthe result is :\n");
for(j=0;j<100;j++)
printf("%d ",a[j]);
}

热心网友 时间:2023-10-11 00:04

冒泡法实际就是穷举法方式的数椐处理.

热心网友 时间:2023-10-11 00:05

没办法,全部写出来.
一遍遍检查

热心网友 时间:2023-10-11 00:05

没看懂你的题目.

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com