C语言冒泡排序,赶紧,为什么没有数字显示?!!!!

发布于 科技 2024-06-02
3个回答
  1. 匿名用户2024-01-29

    int i,j,temp;

    scanf("%d",&a[j]);这里没有值,此外,您最初设置了 5 个数字,那么您要输入什么?

    排序部分也不正确。

    最终输出只输出 4 个数字?

  2. 匿名用户2024-01-28

    冒泡排序是最简单的排序方法,并且易于理解。 虽然它的计算步骤比较多,而且不是最快的,但它是最基本的,初学者必须掌握。

    气泡排序的原理是:从左到右,比较相邻的元素。 每一轮比较都会找到序列中最大或最小的一个。 此数字将从序列的最右侧弹出。

    例如,在第一轮比较之后,所有数字中最大的数字将浮动到最右边; 在第二轮比较之后,所有数字中第二高的数字将浮动到倒数第二的位置......就这样,一轮又一轮地进行对比,最后实现了从小到大的顺序。

    例如,按从小到大的顺序对以下序列进行排序:

    第一轮:1)90和21对90>21,然后他们交换位置:

    2)90和132的比例,90<132,那么不要交换位置。

    3) 132 和 58 的比率,132 > 58,然后他们交换头寸:

    4) 132 和 34 的比率,132>34,然后他们交换位置:

    至此,第一轮结束。 第一轮的结果是找到序列中最大的数字并浮动到最右边。

    比较时,每轮中的第 n 个比较是新序列中第 n 个元素和第 n+1 个元素的比较(假设 n 从 1 开始)。

    第二轮:1)21和90的比例,21<90,无需交换位置。

    2) 90 和 58 的比例,90 > 58,然后他们交换位置:

    3)90和34的比例,90>34,然后他们交换位置:

    至此,第二轮对比结束。 第二轮的结果是找到序列中的第二大数字,并浮动到最右边的第二个位置。

    第三轮:1)21和58的比例,21>58,然后他们交换位置:

    2)21和34的比例,21<34,然后不要切换位置。

    至此,第三轮结束。 第三轮的结果是找到序列中的第三大数字,并浮动到最右边的第三个位置。

    第四轮:1)58和21对58<21,没有位置交换。

    此时,对整个序列进行排序。 从小到大的顺序是“58 21 34 90 132”。 从这个例子中也可以得出结论,如果有n个数据,那么只需要比较n 1轮。

    除了第一轮之外,您不必比较所有轮次。 因为经过前几轮的对比,已经比较过的轮次已经找到了该轮中最大的数字,并且向右浮动,所以右边的数字不需要比较。

  3. 匿名用户2024-01-27

    冒泡排序是计算机科学中一种更简单的排序算法。

    它重复访问要排序的序列,一次比较两个元素,如果它们的顺序错误,则交换它们。 重复访问该系列的工作,直到不再需要交换,即序列已被排序。

    该算法的名称来源于这样一个事实,即元素越大,就会通过交换慢慢“浮动”到序列的顶部。

    算法原理。 冒泡排序算法的工作原理如下:(从后到前)。

    比较相邻元素。 如果第一个比第二个大,请交换它们。

    对每对相邻元素执行相同的工作,从第一对开始,到最后一对结束。 此时,最后一个元素应该是最大的。

    对除最后一个元素之外的所有元素重复上述步骤。

    每次重复上述步骤,使元素越来越少,直到没有数字对进行比较。

    #include

    #define size 8

    voidbubble_sort(inta,intn);

    voidbubble sort(inta,intn) n 是数组 a}} 中的元素数}}

    intmain()

    inti;bubble_sort(number,size);

    for(i=0;iprintf("");}

相关回答
11个回答2024-06-02

楼主,你应该说,你的方案在实施的时候,“第一个数字大于第二个数字按升序排列时必须满足第一个数字,排序排列时第一个数字必须小,第二个数字必须满足,否则会有错误”,不要说人们在冒泡排序时会有这样的漏洞。 气泡排序的思路:比较两个相邻的,并根据排序要求将它们移置(升序和降序颠倒)。 >>>More

13个回答2024-06-02

1.打开Visual Stdio软件,在空项目中新建一个C语言程序的空文件 >>>More

12个回答2024-06-02

有两种类型的错误:

1、char a[11]=; >>>More

6个回答2024-06-02

合并排序写作方法包括:递归写作、重叠**法、原位合并写作、自下而上的合并写作和多向合并写作。 >>>More

11个回答2024-06-02

这显然是一个二维数组,二维数组可以看作是一维数组,for(i = 0; ifor(j = 0; j < n; j++)printf("%d",a[i][j) >>>More