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

冒泡排序演算法

發布時間: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,是一種最基礎的交換排序。

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

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

閱讀全文

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

熱點內容
程序員遇到一個無聊的人 瀏覽:59
dh136c25b壓縮機 瀏覽:137
程序員職業外部威脅 瀏覽:897
小米手機點系統工具文件夾就卡 瀏覽:421
app推廣暗扣是什麼意思 瀏覽:926
php多個分頁 瀏覽:109
隱藏我的電腦里的六個文件夾 瀏覽:495
溫州保稅倉發貨有溯源碼嗎 瀏覽:49
收獲app企業ID是什麼 瀏覽:995
光控台燈單片機 瀏覽:285
文檔不能加密的原因 瀏覽:155
程序員系列大全 瀏覽:360
安卓怎麼用文件升級 瀏覽:667
如何發展mc伺服器 瀏覽:169
安卓手機拍照是反的如何正過來 瀏覽:628
伺服器怎麼外接機械硬碟 瀏覽:93
如何輸入代理伺服器和埠 瀏覽:684
排序演算法的實現的總結 瀏覽:26
重慶活塞並聯壓縮機哪裡買 瀏覽:525
中信銀行信用卡app叫什麼名字圖片 瀏覽:24