『壹』 在c語言編程中什麼叫「冒泡法」具體解釋一下,真心謝謝
排序用的,比如有三個數613從小到大排序,用冒泡法就是先把6和1比較把6(即大的那個數放到1的後面)現在就變成163然後再把6和3進行比較,再把大的數放到後面這樣就變成136,在進行第二次比較,把1和3進行比較大的數再放在後面,這樣136就排出來了!這樣四個數 五個數 六個數 n個數的排序都可以按照這樣的方法!
用C語言實現需要兩個循環,一個內循環和一個外循環,內循環就是指你不斷把把兩個數比較大小並把大的數放在後面的過程,執行完後你會發現最大的數是在最後了!但前面的數順序認識亂的,你就需要第二次排序,經過第二次排序後你會發現第二大的數已經排在倒數第二的位置了,以此類推,想這樣的循環就是外循環
『貳』 c語言冒泡法
結合上下文看啦,inner初始化為冒泡的頭,一旦前者小於後面的就交換,則說明它是在找內循環部分的最大值啊
『叄』 C語言簡單冒泡法程序
#include<stdio.h>
voidsort(int*a,intlen)
{inti=0;
intj;
intt;
for(i=0;i<len;i++)
{
for(j=0;j<len-i-1;j++)
{
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
}
intmain(intargc,char*argv[])
{
inta[10]={
-999,2,3,77,12,88,0,-8,99,100
};
inti=0;
sort(a,10);
for(i=0;i<10;i++)
{
printf("%d",a[i]);
}
return0;
}
(3)c語言冒泡方法圖解擴展閱讀
冒泡排序法
#include"stdio.h"
voidmain()
{
inta[10];
inti,j,temp;
//輸入10個整型數據
printf("Pleaseinputtennumbers: ");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
//排序
for(i=0;i<9;i++)//10個數,10-1輪冒泡,每一輪都將當前最大的數推到最後
{
for(j=0;j<9-i;j++)//9-i,意思是每當經過一輪冒泡後,就減少一次比較
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
//列印排序結果
for(i=0;i<10;i++)
printf("%d ",a[i]);
return0;
}
『肆』 c語言中冒泡法是什麼意思
冒泡法是一種排序方法
冒泡法5
4
3
2
1
比如上面這5個數字我們把它按照由小到大的順序排列,
從前往後相臨兩位比較大小,如果前一位比後一位大就把它倆
換位,5比4大就把5和4換位,得到45321
5又比3大
5和3換位
得到43521
依次類推最後得到
43215
這樣就把最大的一個數字移到最後面了
然後不看5
,剩下4321
再用上面的方法把4移動到最後
得到
32145
在不看45
剩下321
把3移動到
最後,依此類推。
最終得到12345
這就是冒泡法,是計算機編程排序中最簡單快捷的方法。
除此意外我還能寫出許多排序方法,但是效率上都不如冒泡法
至於為什麼叫冒泡法呢,你把這幾個數字豎起來看
1
2
3
4
5
把最大的數字5看成最大的泡泡,浮到最上,然後4又浮上去,依此類推
得到
5
4
3
2
1
所以形象的稱為冒泡法
——————————————————————————————————
以下是C語言中十個數的冒泡法排序的代碼
#include<stdio.h>
#include<conio.h>
int
main(void)
{
long
arrary[9],
box=0L;
int
i1=0,
i2=0;
for(i1=0;i1<9;i1++)
arrary[i1]=0;
printf("輸入數組元素:\n");
for(i1=0;i1<=9;i1++)
{
printf("%3d>",i1+1);
scanf("%d",&arrary[i1]);
}
for(i1=0;i1<=9;i1++)
for(i2=0;i2<=9-i1;i2++)
{
if(arrary[i2]<arrary[i2+1])
{
box=arrary[i2+1];
arrary[i2+1]=arrary[i2];
arrary[i2]=box;
}
}
printf("\n排序後為:\n");
for(i1=0;i1<=9;i1++)
printf("%3d>%d\n",i1+1,arrary[i1]);
getch();
return
0;
}
『伍』 c語言 冒泡法是什麼啊
冒泡法是排序的一種方法,冒泡法和冒泡排序實是一個定義.之所以叫冒泡法,即是像在水中的氣泡一樣,在一輪兩數比較之後將最小(或最大的數字)排在一列數的左邊(當然右邊也行,總之是一邊).然後排開這個數,經過N-2排開之後,整列數的大小就是按順序來的.
『陸』 C語言冒泡排序。
#include<stdio.h>
void main()
{
int a[10];
int i,j,t;
printf("input 10 numbers: ");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(j=0;j<9;j++) /*進行9次循環 實現9趟比較*/
for(i=0;i<9-j;i++) /*在每一趟中進行9-j次比較*/
if(a[i]>a[i+1]) /*相鄰兩個數比較,想降序只要改成a[i]<a[i+1]*/
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
printf("the sorted numbers: ");
for(i=0;i<10;i++)
printf(" %d",a[i]);
}
(6)c語言冒泡方法圖解擴展閱讀:
冒泡排序演算法的運作
1、比較相鄰的元素。如果第一個比第二個大(小),就交換他們兩個。
2、對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。這步做完後,最後的元素會是最大(小)的數。
3、針對所有的元素重復以上的步驟,除了最後已經選出的元素(有序)。
4、持續每次對越來越少的元素(無序元素)重復上面的步驟,直到沒有任何一對數字需要比較,則序列最終有序。
簡單的表示
#include <stdio.h>
void swap(int *i, int *j)
{
int temp = *i;
*i = *j;
*j = temp;
}
int main()
{
int a[10] = {2,1,4,5,6,9,7,8,7,7};
int i,j;
for (i = 0; i < 10; i++)
{
for (j = 9; j > i; j--)//從後往前冒泡
{
if (a[j] < a[j-1])
{
swap(&a[j], &a[j-1]);
}
}
}
for (i = 0; i < 10; i++)
{
printf("%d ", a[i]);
}
return 0;
}
參考資料來源:冒泡排序-網路
『柒』 c語言中的冒泡法是怎樣的
其實就如其名
如下數據
5 3 2 4 1
從5開始與相鄰的數字交換,大的擺右小的擺左
則第一的結果為
3 5 2 4 1
然後繼續執行,直到與最後一個數據交換完畢,結束一次循環
於是的得到
3 2 4 1 5
很顯然,最後一個數據時最大的,
冒泡就是這個意思,每次循環找出最大的,然後找到除這個數之外最大的,直至數組排序完畢。
其實你也可以,用一個max函數返回數組的最大值的位置,把它與最後一個數字交換
如
5 4 2 3 1->1 4 2 3 5
然後除掉最後一個數字,找最大值與倒數第2個數字交換。
1 4 2 3 5->1 3 2 4 5
。。以此類推
『捌』 c語言冒泡排序法詳解
任意兩個數作比較,大的放後面,小的放前面,然後大的在和下一個數比較,還是大的放後小的往前,以此類推,直到所有數比完了,然後輸出
『玖』 求c語言中的冒泡法,到底是怎麼編的,應該怎樣解釋,
//以從小到大為例
//冒泡排序是從左到右,依次取相鄰的兩個元素比較大小,如果後面的比前面的小(a[i+1]<a[i],則交換這兩個
//這樣第一遍下來,最大的數會被交換到數組的最後一個位置
//第二遍,會有第二大的數被交換到數組的倒數第二位置
//依次,就完成了對數組的排序
//若還有疑問,歡迎交流
voidbubblesort(car*list,intlen)
{
inti,j;
inttemp;
for(i=0;i<len-1;i++)
for(j=0;j<len-i-1;j++)
{
if(list[j+1].x>list[j].x)//相鄰元素比較
{
temp=list[j+1].x;
list[j+1].x=list[j].x;
list[j].x=temp;
}
}
}