C/C++ bubble sort 泡沫排序法

文章推薦指數: 80 %
投票人數:10人

本篇ShengYu 介紹C/C++ 中最簡單經典的泡沫排序法bubble sort,並且由C/C++ 來實作泡沫排序法bubble sort。

如果不想自己刻一個排序法可以使用現成C ... 2021-01-27 C/C++教學 本篇ShengYu介紹C/C++中最簡單經典的泡沫排序法bubblesort,並且由C/C++來實作泡沫排序法bubblesort。

如果不想自己刻一個排序法可以使用現成C提供的qsort或C++STL標準函式庫提供的std::sort。

以下開始介紹泡沫排序的原理, 泡沫排序法bubblesort基本原理泡沫排序法bubblesort的原理是將兩個相鄰的數值相比,假如前一個數值比後一個數值大時,就互相對調,實作時就是使用兩層迴圈,針對該陣列掃兩次,最終將能獲得排序好的升序陣列(由小到大),若要排程降序的陣列(由大到小),只需將較大的數值往前交換即可,讓我來舉個簡單的例子吧!假如今天有一串數字陣列648102要使用泡沫排序bubblesort, 第一次迴圈排序步驟如下,所以第一次迴圈就能把最大的數值5給交換到最後了,剩餘要排序的數值還有4個,1234468102468102468102468210 第二次迴圈排序步驟如下,第二次迴圈,就把第二大的數值4給交換到倒數第二個了,剩餘要排序的數值還有3個,123468210468210462810 第三次迴圈排序步驟如下,第三次迴圈,就把第三大的數值3給交換到倒數第三個了,剩餘要排序的數值還有2個,12462810426810 第四次迴圈排序步驟如下,第四次迴圈,就把第三大的數值2給交換到倒數第四個了,剩餘要排序的數值還有1個,1246810 迴圈結束,排序完成。

C/C++實作泡沫排序法bubblesort由上述的簡單例子推演可以了解了泡沫排序bubblesort基本原理後,接著就開始練習用C/C++來寫程式,那我們來看看C/C++泡沫排序怎麼寫吧!cpp-bubble-sort.cpp1234567891011121314151617181920212223242526272829303132//g++cpp-bubble-sort.cpp-oa.out#includevoidbubble_sort(intarray[],intn){for(inti=0;iarray[j+1]){inttemp=array[j];array[j]=array[j+1];array[j+1]=temp;}}}}intmain(){intarray[]={6,4,8,10,2};printf("排序前=");for(inti=0;i<5;i++){printf("%d",array[i]);}printf("\n");bubble_sort(array,5);printf("排序後=");for(inti=0;i<5;i++){printf("%d",array[i]);}printf("\n");return0;} C/C++程式跑出來的結果如下,經過泡沫排序法bubblesort排序後的結果的確是由小排到大。

12排序前=648102排序後=246810 下一篇介紹selectionsort選擇排序法 以上就是C/C++bubblesort泡沫排序法介紹,如果你覺得我的文章寫得不錯、對你有幫助的話記得Facebook按讚支持一下! 其它相關文章推薦Pythonbubblesort泡沫排序法C/C++新手入門教學懶人包C/C++字串轉數字的4種方法C++virtual的兩種用法C/C++字串反轉reverseC/C++callbyvalue傳值,callbypointer傳址,callbyreference傳參考的差別C++類別樣板classtemplatestd::sort用法與範例std::find用法與範例std::queue用法與範例std::map用法與範例std::deque用法與範例std::vector用法與範例 Newer C++寫檔,寫入txt文字檔各種範例 Older VisualStudioCode(VSCode)跳至某一行的快捷鍵 精選文章 Python基礎教學目錄 C/C++入門教學目錄 Linux常用指令教學懶人包 最新文章 C++std::vector轉std::string的2種方法 C++std::string轉std::vector的2種方法 ShellScript判斷目錄資料夾是否存在 Androidadbreverse通訊埠轉發用法教學 LLDB除錯教學 粉絲專頁 分類 Arduino4C/C++教學141Github13Git教學19OpenCV教學8Projects6Python教學224Qt教學7 首頁 Python教學 C/C++教學 歸檔 標籤 Projects 關於我



請為這篇文章評分?