算法 c语言 冒泡排序改进

#include<stdio.h>

#define N 8

void show(int a[]);

void bubble(int a[]);

int main()

{

    int a[N] = {50,36,66,76,95,12,25,36};

    printf(“原无序记录:\n”);

    show(a);

    printf(“排序过程如下:\n”);

    bubble(a);

    return 0;

}

void bubble(int a[])

{

    int i,j,tmp,flag;

    for(i = 0;i < N-1;i++)

    {

        flag = 1;

        for(j = 0;j <N -1;j++)

        {

            if(a[j]>a[j+1])

            {

                tmp = a[j];

                a[j] = a[j+1];

                a[j+1] = tmp;

                flag = 0;

            }

        }

        if(flag)  //对冒泡算法改进

            break;

        show(a);

    }

}

void show(int a[])

{

    int i;

    for(i = 0;i < N;i++)

        printf(“%d\t”,a[i]);

    printf(“\n”);

}

    原文作者:排序算法
    原文地址: https://blog.csdn.net/u013488347/article/details/76446559
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞