算法-冒泡排序法

冒泡排序就是把小的元素往前調或者把大的元素往後調

C語言:

#include <stdio.h>
#define SIZE 8

void bubble_sort(int a[], int n);

void bubble_sort(int a[], int n)
{
    int i, j, temp;
    //先排好後邊的
    for(j = 0; j < n - 1; j++)
    {
        for(i = 0; i < n - 1 - j; i++)
        {
            if(a[i] > a[i + 1])
            {
                temp = a[i];
                a[i] = a[i+1];
                a[i+1] = temp;
            }
        }
    }
}

int main()
{
    int number[SIZE] = {93, 34, 45, 11, 89, 22, 33, 99};
    int i;
    bubble_sort(number, SIZE);
    for(i = 0; i < SIZE; i++)
    {
        printf("%d ", number[i]);
    }
    printf("\n");
}
C++:

#include <iostream>

using namespace std;
template<typename T>

//整數或浮點數皆可使用,若要使用物件時必須設定大於的運算子功能
void bubble_sort(T arr[], int len)
{
    int i, j;
    T temp;
    for (i = 0; i < len - 1; i++)
        for (j = 0; j < len - 1 - i; j++)
            if (arr[j] > arr[j + 1])
            {
                temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
}

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;
    float 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] << ' '; return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章