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

c語言冒泡排序

發布時間: 2022-01-09 20:52:40

c語言冒泡排序(數組)

按照你的要求編寫的C語言冒泡排序的程序如下

#include<stdio.h>

intmain(){

inti,j,k,T,n,tmp;

scanf("%d",&T);

for(i=0;i<T;i++){

scanf("%d",&n);

inta[n];

for(j=0;j<n;j++){

scanf("%d",&a[j]);

}

for(j=0;j<n-1;j++){

for(k=0;k<n-1-j;k++){

if(a[k]>a[k+1]){

tmp=a[k];

a[k]=a[k+1];

a[k+1]=tmp;

}

}

for(k=0;k<n;k++){

printf("%d",a[k]);

}

printf(" ");

}

}

return0;

}


運行結果
輸入2
輸入51044312
輸出
4101243
4121043
1241043
1241043
輸入10201231224345424523-10
輸出
201221235424523-10434
122205424523-10123434
2122024523-1054123434
21222023-104554123434
221220-10234554123434
2212-1020234554123434
22-101220234554123434
2-1021220234554123434
-10221220234554123434

Ⅱ 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;
}

Ⅲ c語言 冒泡排序

1、把變數a 改成其他的變數名 ,比如是 temp
2、第二層for循環裡面的 if 語句有問題,應該是這樣的:
for(j=0;j<=9-i;j++)
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
你的變數 j 寫成了 i ,if 下面還差了一對大括弧,

Ⅳ 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]);


}

(4)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語言冒泡排序

第一個for是代表從數組的 第前一個元素(設為j)循環到數組最後一個元素。
第二個for代表從j+1個(也就是第j+1個元素到最後一個元素,每一個元素和第j個比較大小,然後換位。
舉個例子:比如現在是for到第一個元素,然後第二個for到的第一個的後一個(就是第二個)進行比較,然後換元素。
有什麼不懂再問喔

Ⅵ C語言冒泡排序法代碼

冒泡排序是排序演算法的一種,思路清晰,代碼簡潔,常被用在大學生計算機課程中。「冒泡」這個名字的由來是因為越大的元素會經由交換慢慢「浮」到數列的頂端,故名。這里以從小到大排序為例進行講解。基本思想及舉例說明


冒泡排序的基本思想就是不斷比較相鄰的兩個數,讓較大的元素不斷地往後移。經過一輪比較就,選出最大的數;經過第2輪比較,就選出次大的數,以此類推。下面以對 3 2 4 1 進行冒泡排序說明。

Ⅶ C語言冒泡排序

在後面加上getchar()好了。

Ⅷ c語言冒泡排序法詳解

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

熱點內容
安卓機怎麼關閉主題 發布:2024-12-26 21:55:57 瀏覽:913
javafor線程 發布:2024-12-26 21:54:35 瀏覽:741
python自定義模塊 發布:2024-12-26 21:41:37 瀏覽:55
linux安裝mysqltar 發布:2024-12-26 21:18:02 瀏覽:315
瀏覽器的java支持 發布:2024-12-26 21:15:45 瀏覽:653
電商高管如何配置 發布:2024-12-26 21:13:48 瀏覽:707
批發的演算法 發布:2024-12-26 21:13:46 瀏覽:206
安卓手機在日本下載哪個導航 發布:2024-12-26 21:09:32 瀏覽:558
白雜訊加密 發布:2024-12-26 20:31:02 瀏覽:639
怎麼防止電腦刪除腳本 發布:2024-12-26 20:19:19 瀏覽:151