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

排序之冒泡排序

編輯:C++入門知識

 冒泡排序(BubbleSort)的基本概念是:依次比較相鄰的兩個數,將小數放在前面,大數放在後面。即在第一趟:首先比較第1個和第2個數,將小數放前,大數放後。然後比較第2個數和第3個數,將小數放前,大數放後,如此繼續,直至比較最後兩個數,將小數放前,大數放後。至此第一趟結束,將最大的數放到了最後。在第二趟:仍從第一對數開始比較(因為可能由於第2個數和第3個數的交換,使得第1個數不再小於第2個數),將小數放前,大數放後,一直比較到倒數第二個數(倒數第一的位置上已經是最大的),第二趟結束,在倒數第二的位置上得到一個新的最大數(其實在整個數列中是第二大的數)。如此下去,重復以上過程,直至最終完成排序。 c代碼實現如下: [cpp]   #include <stdio.h>      //打印數組   void display(int array[],int size){       printf("the array is:");       int i;       for(i=0;i<size;i++){           printf("%d ",array[i]);       }       printf("\n");   }      //冒泡排序算法   void sort(int array[],int size){       int i,j,temp,flag;       for(i=0;i<size;i++){           flag = 0;           for(j=size-1;j>i;j--){               //如果前一個數大於後一個數,則交換               if(array[j-1]>array[j]){                   temp = array[j];                   array[j] = array[j-1];                   array[j-1] = temp;                   flag = 1;               }           }           //如果本次排序沒有進行一次交換,則break,減少了執行之間。           if(flag == 0){               break;           }           display(array,size);       }   }      int main(void){       int array[10]={34,45,1,39,21,68,65,100,4,51};       display(array,10);       sort(array,10);       return 0;   }  

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