zoukankan      html  css  js  c++  java
  • 冒泡排序

    #include<stdio.h>
    int main()///冒泡排序
    {
        int a[10005];
        int n,temp=0,flag=0;
        while(scanf("%d",&n)!=EOF)
        {
            int sortnum=n-1,lastsort;///优化第二歩,如果后面已经有序,小循环里就停止冒泡
            for(int i=0;i<n;i++)
            scanf("%d",&a[i]);
    
            for(int i=0;i<n;i++)
            {
                flag=0;             ///优化第一步,如果已经排好序了,提前跳出大循环
                for(int j=0;j<sortnum;j++)
                if(a[j]>a[j+1])
                {
                    temp=a[j+1];
                    a[j+1]=a[j];
                    a[j]=temp;
                    flag=1;
                    lastsort=j;     ///每次小循环更新冒泡的结束位置
                }
                sortnum=lastsort;   ///需要把值弄到外面另一个变量里,不然的话边冒泡边改变循环条件,难免出错
                if(flag==0) break;
            }
    
            for(int i=0;i<n;i++)
            printf("%d	",a[i]);
        }
        return 0;
    }
  • 相关阅读:
    Markdown常用写法
    Vue.js学习篇
    ClassLoader
    Java内存篇
    Spring-AOP学习篇
    M3U8Downloader
    IngCrawler
    ulimit开启coredump时核心转储
    Linux下的bc计算器
    Maven相关介绍
  • 原文地址:https://www.cnblogs.com/shoulinniao/p/9505257.html
Copyright © 2011-2022 走看看