91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++如何實現冒泡排序

發布時間:2020-07-30 14:50:40 來源:億速云 閱讀:211 作者:小豬 欄目:編程語言

這篇文章主要講解了C++如何實現冒泡排序,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。

一、思路:

冒泡排序算法原理:

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

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

3.針對所有的元素重復以上的步驟,除了最后一個。(因為最后一個已經排好,是最大的數)

4.持續每次對越來越少的元素重復上面的步驟,直到沒有任何一對數字需要比較。(接著排第二大的數,一直下去)

如:使用冒泡排序:25 16 9 90 23

            第一輪:如果某個數大于后面的數,那么就交換;

                   第一次  16 25  9  90 23

                   第二次   16  9 25 90 23

                   …..

                   最終: 16 9 25 23 90   最大的數就冒到了最后。

                   比較次數:4次

           第二輪:得到第二大的數:9 16 23 25 90

           到此,已經排好序,可以提前結束排序。

二、實現代碼:

#include <iostream>
using namespace std;
 
const int maxSize = 20;
 
// 冒泡排序:從小到大排序
template <class T>
void BubbleSort(T arr[], int n) {
  int i, j, flag;
  T temp;
  
  for(i = 0; i < n-1; i++) { // 進行n-1次
    flag = 0; // 交換標志,0表示無交換,1表示有交換
    for(j = 0; j < (n-i-1); j++) { // 數組下標最大為n-1
      if(arr[j] > arr[j+1]) { // 逆序就交換
        flag = 1; // 有交換
        temp = arr[j];
        arr[j] = arr[j+1];
        arr[j+1] = temp;
      }
    }
    if(flag == 0) // 無交換,說明已經全部排好序,提前結束
      break;
  } // for
} // BubbleSort
 
int main(int argc, const char * argv[]) {
  int i, n, arr[maxSize];
  
  cout << "請輸入要排序的數的個數:";
  cin >> n;
  cout << "請輸入要排序的數:";
  for(i = 0; i < n; i++)
    cin >> arr[i];
  cout << "排序前:" << endl;
  for(i = 0; i < n; i++)
    cout << arr[i] << " ";
  cout << endl;
  BubbleSort(arr, n);
  cout << "排序后:" << endl;
  for(i = 0; i < n; i++)
    cout << arr[i] << " ";
  cout << endl;
  return 0;
}

測試結果:

C++如何實現冒泡排序

看完上述內容,是不是對C++如何實現冒泡排序有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

盈江县| 绿春县| 亚东县| 阜城县| 曲阳县| 白城市| 和林格尔县| 什邡市| 阿尔山市| 关岭| 常熟市| 那坡县| 中西区| 宣城市| 遂平县| 凤凰县| 镇雄县| 山东| 嘉定区| 井研县| 南投县| 鞍山市| SHOW| 永善县| 蒲城县| 南川市| 招远市| 漳州市| 苗栗市| 古丈县| 固镇县| 阜新| 扶绥县| 漳浦县| 曲水县| 鹰潭市| 吉隆县| 修水县| 桐梓县| 武乡县| 南康市|