當前位置:首頁 » 編程語言 » c語言冒泡

c語言冒泡

發布時間: 2022-01-09 06:54:17

c語言 冒泡排序

#include<stdio.h>
int main()
{
int i,j,a[10],temp;
printf("shuru:");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++) //注意
for(j=0;j<=9-i;j++) //注意
{
if(a[j]>a[j+1])//這裡面應該是j而不是i
{ //應該有括弧
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
for(i=0;i<10;i++)
printf("%d ",a[i]);
}

㈡ c語言冒泡排序法詳解

任意兩個數作比較,大的放後面,小的放前面,然後大的在和下一個數比較,還是大的放後小的往前,以此類推,直到所有數比完了,然後輸出

㈢ 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語言冒泡排序

輸出裡面刪除「&」;

程序稍有問題,做修改:

#include"stdio.h"
intmain()
{
intn,a[1000];
scanf("%d",&n);
for(inti=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(inti=0;i<n-1;i++)
{
for(intj=1;j<n;j++)
{
if(a[j-1]>a[j])
{
inttemp=a[j];
a[j]=a[j-1];
a[j-1]=temp;
}
}
}
for(inti=0;i<n;i++)
{
printf("%d",a[i]);
}
return0;
}

希望找一下自己的錯誤。

望採納~

㈥ c語言冒泡演算法

第二個C語言程序是正確的冒泡程序
因為這兩個C語言程序只有這句不一樣,第一個程序是for(j=0;j<N-i;j++)第二個程序是for(j=0;j<N-i-1;j++)
第一個程序在i=0時,變成for(j=0;j<N;j++),又當j=N-1時,而下面if(a[j+1]<a[j])變成if(a[N]<a[N-1]),a[N]訪問出了數組大小(因為C語言數組元素下標從0到N-1).這在其他語言會出數組越界錯誤.但是C語言不檢查數組越界,所以不會報錯,但是這樣做不安全,有數據溢出的風險.
因此第二個程序是正確的for(j=0;j<N-i-1;j++),在i=0時變成for(j=0;j<N-1;j++)又當j=N-2時下面if(a[j+1]<a[j])變成if(a[N-1]<a[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]);


}

(7)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語言中冒泡是什麼

是一種對一維序列進行排序的演算法
過程(以降序為例):
將第一個元素與第二個比較,如果第一個小於第二個,則交換,小的數被後移,接下來第二個和第三個比較,如果第二個小於第三個,則再交換,小的數再次後移,重復操作,第一輪比較完畢之後,最小的數被交換到了最後一個位置,猶如氣泡層層上浮到了頂層,如此下去經過
N-1
輪的比較,可將
N
個數排好。

㈨ C語言冒泡排序

婁主的問題不是很明確呀!
如果想進行冒泡法排序的話,得使用數組變數才行!
可以修改成這樣
#include <stdlib.h>
#include<time.h>
#include<conio.h>
int main(void)
{
int a[50];
int i,j,tmp;
printf("Ten random numbers from 0 to 99\n\n");
randomize();
for(i=0; i<50; i++)
{
a[i]=rand()%100
printf("%4d", a[i]);
}
//對已經產生的50個隨機數進行冒泡排序
for(i=1;i<=50;i++)
{
for(j=0;j<=i-1;j++)
{
if(a[j]<a[j+1])
{
tmp=a[j];
a[j]=a[j+1];
a[j+1]=tmp;
}
}
}
for(i=0;i<50;i++)
printf("%d/t",a[i]);
getch();
return 0;
}

熱點內容
跳轉頁源碼 發布:2024-09-17 03:13:05 瀏覽:542
html文件上傳表單 發布:2024-09-17 03:08:02 瀏覽:783
聊天軟體編程 發布:2024-09-17 03:00:07 瀏覽:725
linuxoracle安裝路徑 發布:2024-09-17 01:57:29 瀏覽:688
兩個安卓手機照片怎麼同步 發布:2024-09-17 01:51:53 瀏覽:207
cf編譯後沒有黑框跳出來 發布:2024-09-17 01:46:54 瀏覽:249
安卓怎麼禁用應用讀取列表 發布:2024-09-17 01:46:45 瀏覽:524
win10設密碼在哪裡 發布:2024-09-17 01:33:32 瀏覽:662
情逢敵手迅雷下載ftp 發布:2024-09-17 01:32:35 瀏覽:337
安卓如何讓軟體按照步驟自動運行 發布:2024-09-17 01:28:27 瀏覽:197