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

冒泡排序演算法

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

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

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

閱讀全文

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

熱點內容
安卓怎麼看在哪個地方呆了多久 瀏覽:571
120萬程序員徵婚 瀏覽:245
對稱可搜索加密演算法 瀏覽:647
uc如何免費解壓 瀏覽:652
一本電子書怎麼編譯目錄 瀏覽:256
手機壓縮軟體官方下載 瀏覽:218
如何關閉文件夾左邊的導航 瀏覽:219
鏈路狀態路由演算法的實現 瀏覽:936
遺傳演算法錦標賽選擇 瀏覽:477
我的世界is命令 瀏覽:156
python和php哪個強大 瀏覽:225
批處理啟動文件夾寫文件 瀏覽:85
app怎麼看是第幾層 瀏覽:68
python復雜驗證碼識別 瀏覽:508
python位置變數 瀏覽:436
python和SQLserver 瀏覽:247
華為大數據伺服器有什麼用 瀏覽:842
Windows應用程序捆綁核心編程 瀏覽:480
源碼時代php怎麼樣 瀏覽:990
命令提示符以管理員身份運行 瀏覽:820