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

    /*******************
    冒泡排序:稳定排序
    S=O(1),T=O(n*n)
    ********************/
    #include <stdio.h>
    #include <stdbool.h>
    
    int main()
    {
        int a[10],i;
        printf("请输入10个数据:
    ");
        for(i=0;i<10;i++)
            scanf("%d",&a[i]);
        printf("冒泡排序后的数据为:
    ");
        BubbleSort(a,10);
        for(i=0;i<10;i++)
            printf("%d ",a[i]);
        return 0;
    }
    
    int BubbleSort(int A[],int n)
    {
        int i,j,t;
        bool  flag = false; //当整个序列有序的时候,标志位是不发生修改的,从而表示已排好序
        for(i=0;i<n-1;i++) //进行n-1趟排序
        {
            for(j=n-1;j>i;j--)  //一趟排序过程
            {
                if(A[j]<A[j-1]) //如果后面的元素比前面元素小则交换
                {
                    t = A[j];
                    A[j] = A[j-1];
                    A[j-1] = t;
                    flag = true; //发生了数据交换,修改标志位
                }
            }
            if(flag==false) //本趟没有发生交换,说明已经有序
                return 0;
        }
    }
    View Code
  • 相关阅读:
    十五周学习笔记
    十四周学习笔记
    程序员修炼之道二
    程序员修炼之道
    构建之法十七
    十三周学习笔记总结
    个人课程总结
    构建之法十六
    构建之法十二
    文章单词统计接龙
  • 原文地址:https://www.cnblogs.com/spore/p/11553239.html
Copyright © 2011-2022 走看看