排序算法(2)--冒泡排序

冒泡排序,复杂度O(n^2),过程可形象地比作冒泡(小数上冒,大数下沉(从大到小排序)),也较为简单,实现如下:

#include <stdio.h>
#define MAX 100

int main()
{
    int i, j, temp, n;
    int a[MAX];

    printf("Input n:\n");
    scanf("%d",&n);
    for(i = 0; i < n; i++)
        scanf("%d", &a[i]);

    //sort, low->high
    for(i = 0; i < n; i++){
        for(j = 0; j < n - i - 1; j++){
            if(a[j] > a[j + 1]){
                temp = a[j];
                a[j] = a[j + 1];
                a[j + 1] = temp;
            }
        }
    }

    //print
    for(i = 0; i < n; i++)
        printf("%d ", a[i]);
    putchar('\n');

    return 0;
}
点赞