优化冒泡排序

来源:互联网 发布:龙傲天下战骑进阶数据 编辑:程序博客网 时间:2024/06/05 18:46
#include <stdio.h>#include <stdlib.h>int main(){    int i,j,flag=1,temp;//flag用于检查这一次遍历有没有进行元素交换,如果没有进行元素交换,说明排序完成,直接退出。    int n;    int *p;    scanf("%d",&n);    p=(int *)malloc(sizeof(int));    for(i=0;i<=n-1;i++)        scanf("%d",&p[i]);    for(i=2;i<=n;i++)    {        if(flag)        {            flag=0;            for(j=0;j<=n-i;j++)            {                if(p[j]>p[j+1])                {                    temp=p[j];                    p[j]=p[j+1];                    p[j+1]=temp;                    flag=1;                }            }        }        else            break;    }    for(i=0;i<=n-1;i++)        printf("%-4d",p[i]);    return 0;}

0 0
原创粉丝点击