什么叫冒泡排序

2022-09-26 22:07

c語(yǔ)言
5個(gè)回答
就是每進(jìn)行一輪循環(huán)(內(nèi)循環(huán)一次),把最大或最小的值放到最后一個(gè)位置即冒出。如 3 2 1 6 5 一輪后:2 1 3 5 6
比如從小到大排列

就是數(shù)組中,從a[0]開始,a[i]和a[i+1]比較,小的放前,大的放后,直到最后一項(xiàng),一輪之后最大的數(shù)就到最后面了.
第二輪同樣,比到倒數(shù)第二項(xiàng)即可(當(dāng)然比到最后一項(xiàng)也不會(huì)錯(cuò)),這樣次大項(xiàng)到了倒數(shù)第二項(xiàng).
這樣N-1輪之后,就排列好了.

個(gè)人覺得還不叫"沉底法",呵呵,當(dāng)然倒過(guò)來(lái)看就是"冒泡法"了
舉個(gè)例子:
比如說(shuō)有一組數(shù)組:1,6,3,9,7,4
想要給它做排序,把這個(gè)數(shù)組從小到大的排列
這里就可以使用冒泡算法(就像河里的泡向上冒,小的泡會(huì)在大的泡的上面一樣)

這里冒泡排序就是小的數(shù)字一個(gè)一個(gè)往前移,直到前面沒有比它大的數(shù)了,就停下來(lái),每個(gè)數(shù)都同理。

程序舉例(仍舊是上面的例子,但是我用的不是c語(yǔ)言,但你應(yīng)該看得懂)

int[] array=new int[6]{1,6,3,9,7,4};
for(int m=0;m<6;m++)
{
for(int n=5;n>0;n--)
{
if(array[n] {
int temp=array[n];
array[n]=array[n-1];
array[n-1]=temp;
}
}
}

希望對(duì)你有所幫助
舉個(gè)例子:
比如說(shuō)有一組數(shù)組:1,6,3,9,7,4
想要給它做排序,把這個(gè)數(shù)組從小到大的排列
這里就可以使用冒泡算法(就像河里的泡向上冒,小的泡會(huì)在大的泡的上面一樣)

這里冒泡排序就是小的數(shù)字一個(gè)一個(gè)往前移,直到前面沒有比它大的數(shù)了,就停下來(lái),每個(gè)數(shù)都同理。

程序舉例(仍舊是上面的例子,但是我用的不是c語(yǔ)言,但你應(yīng)該看得懂)

int[] array=new int[6]{1,6,3,9,7,4};
for(int m=0;m<6;m++)
{
for(int n=5;n>0;n--)
{
if(array[n] {
int temp=array[n];
array[n]=array[n-1];
array[n-1]=temp;
}
}。
冒泡排序★★★★★★
#include
#define
N
5
void
main()
{
int
i,j;
int
grade[N],temp;
printf("輸入5個(gè)數(shù)\n");
for(i=0;i{
scanf("%d",&grade[i]);
}
for(i=0;i{
for(j=0;j{
if(grade[j]{
temp=grade[j+1];
grade[j+1]=grade[j];
grade[j]=temp;
}
}
}
printf("最后排序?yàn)?\n");
for(i=0;i{
printf("%d",grade[i]);
}
printf("\n");
}
#include
//鏈接標(biāo)準(zhǔn)頭文件
#define
N
5
//定義常量N并賦值為5
void
main()
//主函數(shù)入口
{
//表示主函數(shù)開始
int
i,j;
//定義整形變量i和j
int
grade[N],temp;
//定義N維(N=5,也就是五維啦^^)整形數(shù)組和整形變量temp
printf("輸入5個(gè)數(shù)\n");
//在屏幕上顯式“輸入5個(gè)數(shù)”并且換行
for(i=0;i//開始for循環(huán),從i=0,每次加1,直到i=4,共需循環(huán)5次
{
//循環(huán)體開始
scanf("%d",&grade[i]);
//依次獲取用戶輸入的整數(shù)值并存入數(shù)組grade中
}
//循環(huán)結(jié)束
for(i=0;i//開始外層for循環(huán),從i=0,每次加1,直到i=4
{
//外層循環(huán)體開始
for(j=0;j//開始外層for循環(huán),從j=0,每次加1直到i等于外層循環(huán)的N-j-1
{
//內(nèi)層循環(huán)體開始
if(grade[j]//條件判斷
{
//如果整形數(shù)組前面的數(shù)比其后的小,執(zhí)行以下語(yǔ)句
temp=grade[j+1];
//將比較大的數(shù)賦值給temp
grade[j+1]=grade[j];
//將比較小的數(shù)賦值給數(shù)組中后面的變量
grade[j]=temp;
//將比較大的數(shù)賦值給數(shù)組中前面的變量
}
//從此便完成大小變量的交換,使得大值往前放
}
//結(jié)束內(nèi)層循環(huán)
}
//結(jié)外內(nèi)層循環(huán),完成排序
printf("最后排序?yàn)?\n");//在屏幕顯式“最后排序?yàn)?”并換行
for(i=0;i//同開始的for循環(huán)類似
{
//開始循環(huán)輸出
printf("%d",grade[i]);
//只是這里要逐個(gè)輸出數(shù)組中的五個(gè)數(shù)值
}
//結(jié)束循環(huán)輸出
printf("\n");
//輸出換行到屏幕,看不到什么效果,可刪掉
}
//結(jié)束main()函數(shù)
相關(guān)問(wèn)答
冒泡排序
1個(gè)回答2023-08-09 09:10
要看你的冒泡法是升序還是降序,不過(guò)大體都是一樣的,主要就是那兩個(gè)for循環(huán)那里的問(wèn)題。我這里用的降序: #include void main() { int n[10]; int i,...
全文
冒泡排序法是如何排序的?
2個(gè)回答2022-10-13 06:37
其實(shí)很簡(jiǎn)單,就是一個(gè)一個(gè)進(jìn)行對(duì)比如果ab就把兩個(gè)變量進(jìn)行交換,使得最大/最小的排在前面。 2 4 3 5 1 五個(gè)數(shù) 21 不交換 43521 然后最小的1就一定會(huì)在最后 然后比較前4個(gè)數(shù),4>3,3...
全文
冒泡排序法
1個(gè)回答2022-07-27 23:50
用冒泡排序法對(duì)n個(gè)關(guān)鍵碼排序,在最好的情況下也就是數(shù)據(jù)按關(guān)鍵碼排序次序有序,只需要依次從頭到尾挨個(gè)比較就可以了,因此比較次數(shù)為n-1次,關(guān)鍵碼不移動(dòng),所以0次移動(dòng) 在最壞的情況下為關(guān)鍵碼按排序順序完全...
全文
冒泡排序法是什么
1個(gè)回答2023-08-09 09:10
冒泡排序,是指計(jì)算機(jī)的一種排序方法,它的時(shí)間復(fù)雜度為O(n^2),雖然不及堆排序、快速排序的O(nlogn,底數(shù)為2),但是有兩個(gè)優(yōu)點(diǎn):1.“編程復(fù)雜度”很低,很容易寫出代碼;2.具有穩(wěn)定性,這里的穩(wěn)...
全文
什么叫冒泡排序法
2個(gè)回答2023-01-24 10:50
冒泡排序,是指計(jì)算機(jī)的一種排序方法,它的時(shí)間復(fù)雜度為O(n^2),雖然不及堆排序、快速排序的O(nlogn,底數(shù)為2),但是有兩個(gè)優(yōu)點(diǎn):1.“編程復(fù)雜度”很低,很容易寫出代碼;2.具有穩(wěn)定性,這里的穩(wěn)...
全文
什么叫做冒泡排序?
1個(gè)回答2022-09-30 22:22
冒泡排序★★★★★★ #include #define N 5 void main() { int i,j; int grade[N],temp; printf("輸入5個(gè)數(shù)\n"); ...
全文
“冒泡排序法”是什么?
2個(gè)回答2022-10-04 10:21
冒泡排序詳細(xì)注釋: /* 用冒泡排序法對(duì)一維整型數(shù)組中的十個(gè)數(shù)升序排序 */ #include #include int main() { int i,j,t,a[10]; printf...
全文
冒泡排序代碼?
1個(gè)回答2023-01-05 06:41
for(int i =0;i < score.length - 1;i++) { for(int j = 0;j < score.length - 1-i;j++)// j開始等于0, { if(s...
全文
冒泡排序算法
1個(gè)回答2022-09-17 16:40
冒泡排序,是指計(jì)算機(jī)的一種排序方法,它的時(shí)間復(fù)雜度為O(n^2),雖然不及堆排序、快速排序的O(nlogn,底數(shù)為2),但是有兩個(gè)優(yōu)點(diǎn):1.“編程復(fù)雜度”很低,很容易寫出代碼;2.具有穩(wěn)定性,這里的穩(wěn)...
全文