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
  • 相关阅读:
    UVA 1001 Say Cheese
    UVa 821 Page Hopping
    UVA 1569 Multiple
    UVA 1395 Slim Span
    UVA 12219 Common Subexpression Elimination
    UVA 246 10-20-30
    Mysql基本操作
    浅析关键字static
    面试回答技巧
    五个程序员好习惯
  • 原文地址:https://www.cnblogs.com/spore/p/11553239.html
Copyright © 2011-2022 走看看