C語(yǔ)言冒泡排序算法
用冒泡排序法對(duì)任意輸入的 10 個(gè)數(shù)按照從小到大的順序進(jìn)行排序。
實(shí)現(xiàn)過(guò)程:
(1) 通過(guò)兩個(gè) for 循環(huán)實(shí)現(xiàn)冒泡排序的全過(guò)程,外層 for 循環(huán)決定冒泡排序的趟數(shù),內(nèi)層 for 循環(huán)決定每趟所進(jìn)行兩兩比較的次數(shù)。
(2) 程序代碼如下:
#include <stdio.h>
int main()
{
int i,j,t,a[11]; //定義變量及數(shù)組為基本整型
printf("請(qǐng)輸入10個(gè)數(shù):\n");
for(i=1;i<11;i++)
scanf("%d",&a[i]); //從鍵盤(pán)中輸入10個(gè)數(shù)
for(i=1;i<10;i++) //變量i代表比較的趟數(shù)
for(j=1;j<11-i;j++) //變最j代表每趟兩兩比較的次數(shù)
if(a[j]>a[j+1])
{
t=a[j]; //產(chǎn)利用中間變童實(shí)現(xiàn)兩值互換
a[j]=a[j+1];
a[j+1]=t;
}
printf("排序后的順序是:\n");
for(i=1;i<=10;i++)
printf("%5d",a[i]); //將胃泡排序后的順序輸出
printf("\n");
return 0;
}</stdio.h>
運(yùn)行結(jié)果:
請(qǐng)輸入10個(gè)數(shù):
66 32 23 45 25 5 15 69 46 37
排序后的順序是:
5 15 23 25 32 37 45 46 66 69
技術(shù)要點(diǎn):
本實(shí)例要求用冒泡法對(duì) 10 個(gè)數(shù)由小到大進(jìn)行排序,冒泡法的基本思路是,如果要對(duì) n 個(gè)數(shù)進(jìn)行冒泡排序,那么要進(jìn)行 n-1 趟比較,在第 1 趟比較中要進(jìn)行 n-j 次兩兩比較,在第 j 趟比較中要進(jìn)行 n-j 次兩兩比較。從這個(gè)基本思路中就會(huì)發(fā)現(xiàn),趟數(shù)決定了兩兩比較的次數(shù),這樣就很容易將兩個(gè) for 循環(huán)聯(lián)系起來(lái)了。
作者:大學(xué)生新聞網(wǎng) 來(lái)源:大學(xué)生新聞網(wǎng)
發(fā)布時(shí)間:2025-03-03 閱讀:
- C語(yǔ)言直接插入排序算法
- 插入排序是把一個(gè)記錄插入到已排序的有序序列中,使整個(gè)序列在插入該記錄后仍然有序。插入排序中較簡(jiǎn)單的種方法是直接插入排序
- 03-03 關(guān)注:0
- C語(yǔ)言冒泡排序算法
- 用冒泡排序法對(duì)任意輸入的 10 個(gè)數(shù)按照從小到大的順序進(jìn)行排序。
- 03-03 關(guān)注:0
- C語(yǔ)言希爾排序算法
- 用希爾排序法對(duì)一組數(shù)據(jù)由小到大進(jìn)行排序,數(shù)據(jù)分別為 69、56、12、136、3、55、46、 99、88、25。
- 03-03 關(guān)注:0
- C語(yǔ)言猴子吃桃問(wèn)題
- 猴子吃桃問(wèn)題:猴子第一天摘下若干個(gè)桃子,當(dāng)即吃了一半,還不過(guò)癮,又多吃了一個(gè)。
- 03-03 關(guān)注:0