導航:首頁 > 源碼編譯 > 冒泡排序演算法

冒泡排序演算法

發布時間:2022-02-23 01:37:51

『壹』 冒泡排序的演算法

#include<stdio.h>
void main()
{
int a[10];
int i,j,t;
printf("輸入10個整數:\n");
for( i = 0; i < 10; i ++ )
scanf("%d",&a[ i ]); //依次輸入10個整數
for( j = 0; j < 9; j ++ ) //進行9輪排序 即n-1次
{
for( i = 0; i < 9-j; i ++) //每輪進行n-1-j 次比較,最多n-1-j 次交換
if( a[ i ] > a[ i + 1 ] )
{
t = a[ i ] ;
a[ i ] = a[ i + 1 ]; //小的沉底,大的上浮
a[ i + 1 ] = t;
}
}
printf("排序結果:");
for( i = 0; i < 10; i ++ ) //依次輸出排序結果
printf("%d\t",a[ i ]);
printf("\n");
}
PASCAL為例子
procere Bubble_Sort(var L:List);
vari,j:position;
begin
for i:=First(L) to Last(L)-1 do
for j:=First(L) to Last(L)-i do
if L[j]>L[j+1] then 4 swap(L[j],L[j+1]);
//交換L[j]和L[j+1]
end;
下面使用c++語言編寫
#include<iostream.h>
void main()
{
int a[n],i,j,temp;
cout<<"請輸入數字:"<<endl;
for(i=0;i<=n;i++)
cin>>a; //依次輸入n個整數
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
if(a<a[j]) //利用臨時變數temp交換順序
{ temp=a[j];
a[j]=a;
a=temp;
}
cout<<a<<' '; //依次輸出結果
}
下面使用Visual Basic編寫
Option Explicit
Private Sub Form_Load()
Dim a, c As Variant
Dim i As Integer, temp As Integer, w As Integer
a = Array(12, 45, 17, 80, 50)
For i = 0 To UBound(a) - 1
If (a(i) > a(i + 1)) Then '若是遞減,改為a(i)<a(i+1)
temp = a(i)
a(i) = a(i + 1)
a(i + 1) = temp
End If
Next
For Each c In a
Print c;
Next
End Sub

『貳』 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]);


}

(2)冒泡排序演算法擴展閱讀:

冒泡排序演算法的運作

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;

}

參考資料來源:冒泡排序-網路

『叄』 冒泡排序法

用冒泡排序法對n個關鍵碼排序,在最好的情況下也就是數據按關鍵碼排序次序有序,只需要依次從頭到尾挨個比較就可以了,因此比較次數為n-1次,關鍵碼不移動,所以0次移動
在最壞的情況下為關鍵碼按排序順序完全逆序,第k趟都有n-k個關鍵碼比較,
因此數據一共要做n*(n-1)/2次比較,移動次數則為3n*(n-1)/2

這樣就是錯誤A

『肆』 演算法排序—冒泡排序

cout<<int_array[i]<<endl;相當於printf("%d /n",int_array[i]);
cout<<endl;就是輸出一個換行符。

『伍』 冒泡排序法是什麼

冒泡排序的英文Bubble Sort,是一種最基礎的交換排序。

大家一定都喝過汽水,汽水中常常有許多小小的氣泡,嘩啦嘩啦飄到上面來。這是因為組成小氣泡的二氧化碳比水要輕,所以小氣泡可以一點一點向上浮動。而我們的冒泡排序之所以叫做冒泡排序,正是因為這種排序演算法的每一個元素都可以像小氣泡一樣,根據自身大小,一點一點向著數組的一側移動。

冒泡排序演算法的原理如下:

閱讀全文

與冒泡排序演算法相關的資料

熱點內容
好程序員字元緩沖流 瀏覽:76
怎麼寫程序到伺服器 瀏覽:53
小米28理財源碼 瀏覽:853
車削中心編程與操作技能鑒定 瀏覽:458
雲伺服器買了干點什麼 瀏覽:624
程序員桌面管理軟體 瀏覽:990
綠洲平台app做任務在哪裡 瀏覽:690
文檔中加密的格式 瀏覽:518
androidgallery效果 瀏覽:256
make編譯顯示無法分配內存 瀏覽:64
可編程式機械定時器 瀏覽:115
浙江增值稅發票安全伺服器地址 瀏覽:572
河南農信app上身份證更新在哪裡 瀏覽:735
戰地1被伺服器ban了怎麼辦 瀏覽:666
shell暫停命令 瀏覽:726
雲伺服器ecs更換可用區 瀏覽:325
菜鳥裹裹的加密有什麼用 瀏覽:187
農商銀行app賬號是什麼格式 瀏覽:979
liunx安裝androidsdk 瀏覽:595
顯卡雲伺服器對比知乎 瀏覽:180