冒泡排序(C语言实现)

1. 算法描述

假设有n个数,我们分n-1轮进行。

每轮从位置0开始比较,每次只比较相邻的两个数目,若不满足有序性则交换两数。

第i轮能比较出第i大(小)的数,所以比较的终点也需要更新。

2. 实现

#include 
void bubbleSort(int *arr, int sz)
{
    for (int i = 0;i < sz - 1; ++i) {
        for (int j = 0; j < sz - i - 1; ++j)  {
            if ( arr[j] > arr[j + 1]) {
                int tmp = arr[j + 1];
                arr[j + 1] = arr[j];
                arr[j] = tmp;
            }
        }
    }
}
int main( int argc, char *argv[])
{

    int arr[] = { 1,3,2,5,4};

    int sz = sizeof(arr) / sizeof(arr[0]);

    bubbleSort(arr, sz);

    for (int i = 0;i < sz; ++i)
            printf("%d ", arr[i]);

    return 0;
}

你可能感兴趣的:(c语言,算法,数据结构)