冒泡排序


冒泡排序

冒泡排序算法的原理如下:
  1. 比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。
  2. 對每一對相鄰元素做同樣的工作,從開始第一對到結尾的最后一對。在這一點,最后的元素應該會是最大的數。
  3. 針對所有的元素重復以上的步驟,除了最后一個。
  4. 持續每次對越來越少的元素重復上面的步驟,直到沒有任何一對數字需要比較。

代碼

#include <stdio.h>

void BubbleSort(int arr[], int size)
{
    if (arr == NULL || size < 2) {
        return;
    }
    int i, j, temp;
    for (i = 0; i < size; ++i) {
        for (j = 0; j < size - i - 1; ++j) {
            if (arr[j] > arr[j + 1]) {
                temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
}

void PrintArr(int arr[], int size)
{
    if (arr == NULL || size < 1) {
        return;
    }
    int i;
    for (i = 0; i < size; ++i) {
        printf("%d, ", arr[i]);
    }
    printf("\n");
}

int main()
{
    int arr[10] = {6, 1, 5, 4, 2, 3, 7, 8, 10, 9};
    PrintArr(arr, 10);
    BubbleSort(arr, 10);
    PrintArr(arr, 10);
    return 0;
}


免責聲明!

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



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