冒泡排序

作者: sure_风雨与晴 | 来源:发表于2019-03-03 13:47 被阅读2次

对数组中的n个数执行n-1遍检查操作,在每一遍执行时,对数组中剩余的尚未排序的元素进行如下操作:对相邻的两个元素进行比较,若排在后面的数小于排在前面的数,则交换其位置,这样每一遍操作中都将参与比较的数中的最大的数沉到数组的底部,经过n-1遍操作后,就将全部n个数按从小到大的顺序排好了。

#include <stdio.h>
#include <stdlib.h>
#define N 10

void BubbleSort(int a[], int n);
int main()
{
    int i, n, a[N];
    printf("Input n:");
    scanf("%d", &n);
    printf("Input %d numbers:", n);
    for (i = 0; i < n; i++)
        scanf("%d", &a[i]);
    BubbleSort(a, n);
    printf("Sorting results:");
    for (i = 0; i < n; i++)
        printf("%4d", a[i]);
    printf("\n");
    return 0;
}

//使用冒泡法实现数组a 的n个元素的升序排列
void BubbleSort(int a[], int n)
{
    int i, j, temp;
    for (i = 0; i < n-1; i++)//执行n-1遍检查操作
        for (j = 1; j < n-1; j++)//剩余的尚未排序的元素
            if (a[j] < a[j-1])
            {
                temp = a[j];
                a[j] = a[j-1];
                a[j-1] = temp;
            }
}

相关文章

网友评论

    本文标题:冒泡排序

    本文链接:https://www.haomeiwen.com/subject/frreuqtx.html