欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++實(shí)現(xiàn)冒泡排序(BubbleSort)

 更新時(shí)間:2020年04月24日 17:12:10   作者:ChanJose  
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)冒泡排序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了C++實(shí)現(xiàn)冒泡排序的具體代碼,供大家參考,具體內(nèi)容如下

一、思路:

冒泡排序算法原理:

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

2.對(duì)每一對(duì)相鄰元素做同樣的工作,從開始第一對(duì)到結(jié)尾的最后一對(duì)。在這一點(diǎn),最后的元素應(yīng)該會(huì)是最大的數(shù)。

3.針對(duì)所有的元素重復(fù)以上的步驟,除了最后一個(gè)。(因?yàn)樽詈笠粋€(gè)已經(jīng)排好,是最大的數(shù))

4.持續(xù)每次對(duì)越來(lái)越少的元素重復(fù)上面的步驟,直到?jīng)]有任何一對(duì)數(shù)字需要比較。(接著排第二大的數(shù),一直下去)

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

            第一輪:如果某個(gè)數(shù)大于后面的數(shù),那么就交換;

                   第一次  16 25  9  90 23

                   第二次   16  9 25 90 23

                   …..

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

                   比較次數(shù):4次

           第二輪:得到第二大的數(shù):9 16 23 25 90

           到此,已經(jīng)排好序,可以提前結(jié)束排序。

二、實(shí)現(xiàn)代碼:

#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++) { // 進(jìn)行n-1次
    flag = 0; // 交換標(biāo)志,0表示無(wú)交換,1表示有交換
    for(j = 0; j < (n-i-1); j++) { // 數(shù)組下標(biāo)最大為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) // 無(wú)交換,說明已經(jīng)全部排好序,提前結(jié)束
      break;
  } // for
} // BubbleSort
 
int main(int argc, const char * argv[]) {
  int i, n, arr[maxSize];
  
  cout << "請(qǐng)輸入要排序的數(shù)的個(gè)數(shù):";
  cin >> n;
  cout << "請(qǐng)輸入要排序的數(shù):";
  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è)試結(jié)果:

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C/C++利用libxml2高效輸出XML大文件詳解

    C/C++利用libxml2高效輸出XML大文件詳解

    這篇文章主要給大家介紹了關(guān)于C/C++利用libxml2高效輸出XML大文件的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-11-11
  • C語(yǔ)言動(dòng)態(tài)規(guī)劃點(diǎn)殺dp算法LeetCode炒股習(xí)題案例解析

    C語(yǔ)言動(dòng)態(tài)規(guī)劃點(diǎn)殺dp算法LeetCode炒股習(xí)題案例解析

    這篇文章主要介紹為了C語(yǔ)言動(dòng)態(tài)規(guī)劃點(diǎn)殺dp算法,本文以LeetCode炒股習(xí)題案例來(lái)為大家進(jìn)行詳細(xì)解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2022-02-02
  • C++?socket通信遇到的問題及解決方法

    C++?socket通信遇到的問題及解決方法

    這篇文章主要介紹了C++?socket通信遇到的問題,通過代碼修改來(lái)解決這個(gè)問題,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-08-08
  • C++?超詳細(xì)示例講解list的使用

    C++?超詳細(xì)示例講解list的使用

    list是一種序列式容器。list容器完成的功能實(shí)際上和數(shù)據(jù)結(jié)構(gòu)中的雙向鏈表是極其相似的,list中的數(shù)據(jù)元素是通過鏈表指針串連成邏輯意義上的線性表,也就是list也具有鏈表的主要優(yōu)點(diǎn),即:在鏈表的任一位置進(jìn)行元素的插入、刪除操作都是快速的
    2022-07-07
  • C++設(shè)計(jì)模式之CRTP的使用

    C++設(shè)計(jì)模式之CRTP的使用

    CRTP全稱是curious?recurring?template?pattern,即奇異遞歸模版模式,是一種c++的設(shè)計(jì)模式,精巧地結(jié)合了繼承和模板編程的技術(shù),下面就跟隨小編一起來(lái)學(xué)習(xí)一下CRTP的使用吧
    2023-10-10
  • C語(yǔ)言動(dòng)態(tài)內(nèi)存管理的實(shí)現(xiàn)

    C語(yǔ)言動(dòng)態(tài)內(nèi)存管理的實(shí)現(xiàn)

    本文主要介紹了C語(yǔ)言動(dòng)態(tài)內(nèi)存管理的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • 手把手教你用C語(yǔ)言實(shí)現(xiàn)三子棋

    手把手教你用C語(yǔ)言實(shí)現(xiàn)三子棋

    三子棋是黑白棋的一種。三子棋是一種民間傳統(tǒng)游戲,又叫九宮棋、圈圈叉叉、一條龍、井字棋等。這篇文章就教你如何用C語(yǔ)言實(shí)現(xiàn)三子棋的功能
    2021-08-08
  • C/C++ 獲取Windows系統(tǒng)的位數(shù)32位或64位的實(shí)現(xiàn)代碼

    C/C++ 獲取Windows系統(tǒng)的位數(shù)32位或64位的實(shí)現(xiàn)代碼

    這篇文章主要介紹了C/C++ 獲取Windows系統(tǒng)的位數(shù)32位或64位的實(shí)現(xiàn)代碼的相關(guān)資料,希望通過本文能幫助到大家,讓大家實(shí)現(xiàn)這樣的功能,需要的朋友可以參考下
    2017-10-10
  • 詳解C++編程中類的成員變量和成員函數(shù)的相關(guān)知識(shí)

    詳解C++編程中類的成員變量和成員函數(shù)的相關(guān)知識(shí)

    這篇文章主要介紹了C++編程中類的成員變量和成員函數(shù)的相關(guān)知識(shí),是C++入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-09-09
  • C語(yǔ)言超詳細(xì)講解輪轉(zhuǎn)數(shù)組

    C語(yǔ)言超詳細(xì)講解輪轉(zhuǎn)數(shù)組

    這篇文章主要給大家講解輪轉(zhuǎn)數(shù)組的問題,一個(gè)問題不局限于一種解法,希望你看了本文的解決方法以后可以舉一反三自己編寫,這樣你的技術(shù)水平會(huì)有質(zhì)的提高
    2022-04-04

最新評(píng)論