十大經典排序之冒泡排序(C++實現)


冒泡排序

思路:
1.比較相鄰的元素。如果第一個比第二個大,就交換它們兩個
2.對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最后一對,這樣在最后的元素應該會是最大的數
3.針對所有的元素重復以上的步驟,除了最后一個
4.重復步驟1~3,直到排序完成

代碼實現:

#include <iostream>
using namespace std;
template<typename T> //整數或浮點數皆可使用,若要使用類(class)或結構體(struct)時必須重載大於(>)運算符
void bubble_sort(T arr[], int len) 
{
    for(int  i = 0; i < len - 1; i++)
        for(int j = 0; j < len - 1 - i; j++)
            if (arr[j] > arr[j + 1])
               swap(arr[j], arr[j + 1]);
}
int main() 
{
    int arr[] = { 61, 17, 29, 22, 34, 60, 72, 21, 50, 1, 62 };
    int len = (int)sizeof(arr) / sizeof(*arr);
    bubble_sort(arr, len);
    for (int i = 0; i < len; i++)
         cout << arr[i] << ' ';
    cout << endl;
    double arrf[] = { 17.5, 19.1, 0.6, 1.9, 10.5, 12.4, 3.8, 19.7, 1.5, 25.4, 28.6, 4.4, 23.8, 5.4 };
    len = (int)sizeof(arrf) / sizeof(*arrf);
    bubble_sort(arrf, len);
    for (int i = 0; i < len; i++)
            cout << arrf[i] << ' '<<endl;
    return 0;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM