c语言 使用冒泡排序将一维数组A中的N个元素升序排列

c语言 使用冒泡排序将一维数组A中的N个元素升序排列,第1张

方法和详细的 *** 作步骤如下:

1、第一步,打开C文件,定义一组序列和要排序的各种变量,然后处理排序逻辑,具体的代码见下图,转到下面的步骤。

2、第二步,完成上述步骤宴告纤后,冒泡排序的逻辑是一组数字从第一个值开始,如果两个相邻数字的顺序与期望的顺序不同,则会交换两个数字的位置。 重复此过程,直到最后一个数字。如果需要交换,则排序完成,实现的代码见下图,转到下面的步骤。

3、第三步,完成上述步骤后,编译并运行程序,就获得了友手想要的结果晌仿了,见下图。这样,就解决了这个问题了。

程序如下:

#include <stdio.h>

int main ()

{

int a[10]

int i, j, t

printf ("请输入十个数:\n")

for (i = 0i <10i++)

{

printf ("a[%d]=", i+1)

scanf ("%d",&a[i])

}

for (j = 0j <9j++)

for (i = 0i <9 - ji++)

if (a[i] >a[i+1])

{

t = a[i]

a[i] = a[i+1]

a[i+1] = t

}

printf ("由小到大的顺序为:\n")

for (i = 0i <10i++)

{

printf ("%d,",a[i])

}

printf ("\n")

return 0

}

运行结果

请输入十个岁携备数:

a[1]=7

a[2]=8

a[3]=9

a[4]=6

a[5]=5

a[6]=4

a[7]=1

a[8]=2

a[9]=3

a[10]=99

由小到大的顺序为:

1,2,3,4,5,6,7,8,9,99。

冒泡排序算法的原理如下:

1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。

2、对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,隐顷最后的元素应该会是最大的数。

3、针对所有的元素重复以上的步骤,除了最后一个。

4、持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

扩展资料:

冒泡排序的思想:

首先,从表头开始往后扫描数组,在扫描过程中逐对比较相领两个元素的大小。若相邻两个元素中,前面的元素大于后面的元素,则将它们互换, 称之为清去了一个逆序。

在扫描过程中,不断地将两相邻元素中的大者往后移动,最后就将数组中的最大者换到了表的最后,这正是数组中最大元素应有的位置。

然后,在剩下的数组元素中(n-1个元素)重复上面的过程,将次小元素放到倒数第2个位置。不断重复上述过程,直到剩下的数组元素为0为止,此时的数组就变为了有序。

假设数组元素的个数为西,在最坏情乎毁况下需要的比较总次数为: (n-1)+(n- 2)...+2+1)- n(n-1)/2。

参考资料来源:百度百科-冒泡排序

//举个例子吧: 

4 3 2 8 6 /*4和3比4大不埋信用管 (43286),3和2比3大也不用管

(43286),2和8比8大 8往前移(43826),2和6比6大6往前移(43862)

第一轮结束了最终是43862*/

//第二轮

4 3 8 6 2/*4和3比4大不动(43862),3和8比8大,8前移(48362),

3和6比6大6前移(48632),3和2比3大不动(48632),第二轮结束,最终是48632*/

//以此类推皮唤第三轮 

8 6 4 3 2

//所谓冒泡排序就是大数往下燃液凯沉,小数往上升,这是正序倒序相反


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12397118.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存