日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

交换排序之——冒泡排序(c/c++)

發布時間:2025/6/17 c/c++ 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 交换排序之——冒泡排序(c/c++) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

冒泡排序是很有名的排序算法,經常會被人們提到,是一種較為常見的排序方法。

顧名思義,它是將數按照一定順序給篩選出來。假定為升序,該算法將多次訪問數列,第一次將最大數放置到末尾,第二次將次大數放置到倒數第二位,依次類推,直至排序結束。它每一次都能將一個數放到排序后它應該在的最終位置,待排序數會越來越少,最終均有序。例如:

初始數列為2,4,1,6,3,5 ? ?? 一趟之后為 2,1,4,3,5,6 ? ?? 第二趟后為 1,2,3,4,56 ? 此時數列已然有序,結束。

冒泡排序是穩定的排序算法。它和直接插入排序是常用的兩種簡單排序方法。

它的時間復雜度為o(),最好情況下為o(n)。空間復雜度為o(1)。

完整代碼如下:(升序)

#include<iostream>#define N 20void bubbleSort(int* arr, int num);int main(){int a[N] = { 3, 2, 4, 6, 7, 5, 18, 9, 0, 1,16, 8, 20, 33, 28, 64, 19, 31, 30, 25 };for (int i = 0; i < N; i++){std::cout << a[i] << " ";}std::cout << '\n';bubbleSort(a, N);for (int i = 0; i < N; i++){std::cout << a[i] << " ";}return 0;}void bubbleSort(int* arr, int num){int count, i, j,temp;//count計數變量,為避免已經有序但程序仍運行,提高效率。count=1;while (count){j = 1;//記錄待排序數的數量變化(依次減少的)count = 0;for (i = 0; i < num - j; ++i){if (arr[i] > arr[i + 1]){temp = arr[i];arr[i] = arr[i + 1];arr[i + 1] = temp;//本質是交換++count;}}++j;}}

?

總結

以上是生活随笔為你收集整理的交换排序之——冒泡排序(c/c++)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。