c语言如何用冒泡法对固定的数从大到小排序输出?

胡俊


冒泡排序的原理就是每一轮遍历数据都将本轮的最大数拖动到末尾,遍历完排序也完成了。

排序代码截图如下:

调用排序函数:

输出结果:1 2 3 4 5 7 9 15


码中寻乐


冒泡法其实就是循环把大的数(或者小的数)往上推

冒泡法是非常经典的数组排序算法,只需要两个循环语句就可以把数组按从大到小或者从小到大排好。就像冒泡泡一样,把小的(或者大的)往上冒,就可以得到我们需要的结果了。

冒泡法原理

以从大到小排序排序为例

  • 先从最前面两个数开始,比较大小,如果第一个数比第二个数小,就交换位置,否则保持位置不变;接着比较第二个数和第三个数,如果第二个数比第三个数小,就交换位置,否则保持位置不变;依此类推,最小的数就到了最顶端了;
  • 接着进行第二轮冒泡,同样是从前面的两个数开始比较,因为经过第一轮冒泡后,最小的数已经在最上面的,第二轮冒泡到倒数第二个就可以了。
  • 由此可见,N个数的数组,需要进行N-1轮冒泡,第一轮冒泡要进行N-1次比较,第二轮进行N-2次冒泡,依此类推。

冒泡法C语言程序

以C语言为例,我们可以用两个for循环实现冒泡法算法。当然除了用for还可以用while哦,大家可以思考一下。

冒泡法排序是不是很有意思呢?如有错漏,欢迎批评指正哦!

欢迎关注@电子产品设计方案,一起享受分享与学习的乐趣!关注我,成为朋友,一起交流一起学习

  • 记得点赞和评论哦!非常感谢!

电子产品设计方案


冒泡算法的思路: 正如象形,每次冒一個泡泡,又如挑雞蛋。先循環一次,找出最小或最大的那個元素(未必是數值,比較規則按需要而定,要懂靈活),放到一端,那麼這個已找到的就不用再管了,再把剩下的按同樣方法找一次,一直找完。這裡要注意一點就是,由於每次都把已經找到的元素依次排好,那麼剩下需要挑揀的就越來越少,在算法上體現這一點。


弄懂了這個基本思路,剩下就是你的創造性。比如,對數據量大的情形,可以分而治之,按一定的比例把數據分割為若干片,分別排序(對某些支持並行計算的環境而言這是好主意),每片都排好後就可以考慮插入歸併了。不是所有算法都可以在內存中完成的,外排序更常見,都要採用分割法。


總之,無論思考甚麼算法,都要構思一個模型,想像手工如何操作,把每一個步驟都考慮清楚,看是否合理,最後才動手編碼。路子有樣板,但具體無定型,靠背具體算法代碼是不夠出來對付現實的。


TonyDeng


于少数的数字的排列,可以通过简单的if嵌套语句便可将所有情况列举出来;

但是一旦要比较的数字较多,这种方法便缺少了可执行性;

因此,我们可以采用数组的思想来进行编程;

此处以:将10个数按从小到大排列输出 举例:

#include"stdio.h"

#define N 10

int main ()

{

int a[N];

int i,j,t;

printf("Please input %d numbers:\\n\


分享到:


相關文章: