冒泡排序

#include<stdio.h>

// Function declaration
void TraverseArr(int arr[], int length);
void swap(int *a, int *b);
void bubble_sort(int arr[], int length);

// The main function entry
int main(void)
{
    int arr[] = {2, 3, 5, 7, 8, 1, 6, 4, 10, 9};
    int len = sizeof(arr) / sizeof(int);

    printf("Before Sorting: ");
    TraverseArr(arr, len);

    bubble_sort(arr, len);
    
    printf("After Sorting: ");
    TraverseArr(arr, len);

    return 0;
}

/**
 * 冒泡排序
 * @param arr 待排序数组
 * @param length 数组长度
 */
void bubble_sort(int arr[], int length)
{
    int i, j;
    for(i = 0; i < length - 1; i++){
        for(j = 0; j < length - 1 - i; j++){
            if(arr[j] > arr[j+1]){
                swap(&arr[j], &arr[j+1]);
            }
        }
    }
}

/**
 * swap two values
 * @param a
 * @param b
 */
void swap(int *a, int *b)
{
    int temp = *a;
    *a = *b;
    *b = temp;
}

/**
 * Through the array
 * @param arr 待遍历的数组
 * @param length 数组长度
 */
void TraverseArr(int arr[], int length)
{
    int i;
    for(i = 0; i < length; i++)
    {
        printf("%-4d", arr[i]);
    }
    printf("\n");
}
posted @ 2022-05-14 18:44  wjxuriel  阅读(23)  评论(0)    收藏  举报