當前位置:首頁 » 操作系統 » 冒泡排序演算法

冒泡排序演算法

發布時間: 2022-01-24 03:21:12

演算法:冒泡排序

public class Bubble {
public static void main(String[] args){
int[] a={2,7,5,6,1,3,8,4,9};
for(int i=0;i<a.length-1;i++){
for(int j=i;j<a.length;j++){
if(a[i]>a[j]){
int t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
for(int i:a){
System.out.print(" "+i);
}
}

}

❷ 冒泡排序法

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

這樣就是錯誤A

❸ 冒泡排序演算法

B

❹ 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)冒泡排序演算法擴展閱讀:

冒泡排序演算法的運作

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;

}

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

❺ 冒泡排序的演算法

#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

❻ 演算法排序—冒泡排序

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

❼ 冒泡排序法是什麼

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

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

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

  • 比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。

  • 對每一對相鄰元素做同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。

  • 針對所有的元素重復以上的步驟,除了最後一個。

  • 持續每次對越來越少的元素重復上面的步驟,直到沒有任何一對數字需要比較。

  • 具體如何來移動呢?讓我們來看一個栗子:

    希望對您有所幫助!~

熱點內容
php單雙引號 發布:2024-11-13 06:55:07 瀏覽:669
sql太長 發布:2024-11-13 06:50:19 瀏覽:486
android虛擬機art 發布:2024-11-13 06:49:38 瀏覽:192
編程登錄平台 發布:2024-11-13 06:44:35 瀏覽:141
球刀如何編程 發布:2024-11-13 06:44:34 瀏覽:989
mega神奇寶貝伺服器ip 發布:2024-11-13 06:37:08 瀏覽:394
python主要用來做什麼 發布:2024-11-13 06:36:59 瀏覽:163
extjs文件上傳java 發布:2024-11-13 06:22:49 瀏覽:692
電腦數據怎麼備份到伺服器 發布:2024-11-13 06:19:31 瀏覽:404
c語言函頭文件 發布:2024-11-13 06:14:40 瀏覽:37