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

C++冒泡排序算法實例

編輯:關於C++

C++冒泡排序算法實例。本站提示廣大學習愛好者:(C++冒泡排序算法實例)文章只能為提供參考,不一定能成為您想要的結果。以下是C++冒泡排序算法實例正文


冒泡排序

年夜學進修數據構造與算法最開端的時刻,就講了冒泡排序;可見這個排序算法是何等的經典。冒泡排序是一種異常簡略的排序算法,它反復地訪問過要排序的數列,每次比擬兩個數,依照升序或降序的規矩,比較較的兩個數停止交流。好比如今我要對以下數據停止排序:

10 3 8 0 6 9 2

當應用冒泡排序停止升序排序時,排序的步調是如許的:

3 10 8 0 6 9 2  // 10和3停止比較,10>3,交流地位

3 8 10 0 6 9 2  // 10再和8停止比較,10>8,交流地位

3 8 0 10 6 9 2  // 10再和0停止比較,10>0,交流地位

……

3 8 0 6 9 2 10  // 這個時刻,10達到了最左邊,是最年夜的數字,此時,我們在從頭開端停止比較

3 8 0 6 9 2 10  // 3小於8,所以不消交流地位

3 0 8 6 9 2 10  // 8年夜於0,所以交流地位

……

0 2 3 6 8 9 10

很簡略,就是讓年夜數沉入上面,小數漸漸上浮起來。冒泡排序的時光龐雜度也為O(n^2)。

代碼完成


#include <iostream>
using namespace std;
 
void BubbleSort(int arr[], int length)
{
     int temp;
     for (int i = 0; i < length; ++i)
     {
          for (int j = 0; j < length - i - 1; ++j)
          {
               if (arr[j] > arr[j + 1])
               {
                    temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
               }
          }
     }
}
 
int main()
{
     int arr[10] = {2, 4, 1, 0, 8, 4, 8, 9, 20, 7};
 
     BubbleSort(arr, sizeof(arr) / sizeof(arr[0]));
 
     for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); ++i)
     {
          cout<<arr[i]<<" ";
     }
     cout<<endl;
 
     return 0;
}

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