程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 冒泡算法

冒泡算法

編輯:C#入門知識

一、冒泡算法

1、方式一


[c-sharp]
 bubble_sort(int Array[],int Size)
{
    int i,j,temp;


    if(Array == NULL)

        return -1;


    for(i=0;i<Size-1;i++) { 
        for(j=0;j<Size-1-i;j++) { 
            if(Array[j]>Array[j+1]) { 
                temp = Array[j]; 
                Array[j] = Array[j+1]; 
                Array[j+1] = temp; 
            } 
        } 
    }
    return 0; 

 2、方式二

int bubble_sort(int Array[], int size)
{
    int i = size, j;
    int temp;
    if(Array == NULL)
        return -1;
    while(i-- > 0) {
        for(j = 0; j < i - 1; j++) {
            if(Array[j] > Array[j + 1]) {
                temp = Array[j];
                Array[j] = Array[j + 1];
                Array[j + 1] = temp;
            }
        }
    }
    return 0;
}

 

 3、方式三


int bubble_sort(int Array[], int size)
{
    int i = size, j;
    int temp;
    if(Array == NULL)
        return -1;
    for(i = size; i > 0; i--) {
        for(j = 0; j < i - 1; j++) {
            if(Array[j] > Array[j + 1]) {
                temp = Array[j];
                Array[j] = Array[j + 1];
                Array[j + 1] = temp;
            }
        }
    }
    return 0;
}

二、冒泡算法優化


在函數中定義一個bool 的變量 issorted ,在每趟對剩余的數字排序時,先把它設為true,然後當發生兩個兩個相鄰的數沒有按要求排時,在交換這兩個數的同時,把issorted設為false,不然就一直保持為true。

      在進行好一趟排序之後,測試issorted這個變量的值,如果保持true,就說明已經排好序了,停止繼續排序,不然進行下一趟排序。

具體代碼:


[c-sharp]
void bubble_sort(int Array[], int Size)

    int i,j,temp; 
    bool issorted;


    for(i=0; i<Size-1; i++){ 
        issorted = true; 
        for(j=0; j<Size-1-i; j++){ 
            if(Array[j] > Array[j+1]){ 
                temp = Array[j]; 
                Array[j] = Array[j+1]; 
                Array[j+1] = temp; 
                issorted = false; 
            } 
        } 
        if(issorted) 
            break; 
    } 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved