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

    冒泡排序法是一种相邻数据交换的排序方法。基本思想是:对待排序记录关键字从后往前(逆序)进行多遍扫描,当发现相邻两个关键字的次序与排序要求的规则不符时,就将这两个记录进行交换。这样,关键字较小的记录将逐渐从后面向前面移动,就像气泡在水中向上浮一样。

    /*--------完整代码@映雪--------*/
    
    #include <iostream>
    using namespace std;
    void BubbleSort(int a[],int n)/*冒泡排序*/
    {
        int i,j,temp;
        for(i=0;i<n;i++)
            for(j=n-1;j>i;j--)
            {
                if(a[j-1]>a[j])
                {
                    temp=a[j];
                    a[j]=a[j-1];
                    a[j-1]=temp;
                }
            }
    }
    int main()
    {
        int a[]={3,12,7,32,7833,22,11,8,99,55};
        BubbleSort(a,sizeof(a)/sizeof(int));
        for(int i=0;i<sizeof(a)/sizeof(int);i++)
        {
            cout<<a[i]<< " ";
        }   
        return 0;
    }

    改进算法:设置一个标志变量flag,在每一遍扫描之前将其设置为0,在扫描过程中,若有数据交换,则设置其值为1.在一遍扫描完成之后,判断flag的值,若其值为0,表示在这一遍扫描中已经没有数据进行交换,就不需要进行后续扫描。

    /*----改进的冒泡排序-------*/
    void BubbleSort(int a[],int n)/*冒泡排序*/
    {
        int temp,flag=0;
        for(int i=0;i<n-1;i++)/*需要n-1次扫描*/
         {
                for(int j=n-1;j>i;j--)
            {
                if(a[j-1]>a[j])
                {
                    temp=a[j];
                    a[j]=a[j-1];
                    a[j-1]=temp;
                    flag=1;   
                }
                
            }
            if(flag==0)
            break;
            else
            flag=0;
         }
            
    }
  • 相关阅读:
    xpath语法速查
    负载均衡设计
    Nginx负载均衡配置实例详解
    实现基于DNS的负载均衡
    建立双线服务器(双线游戏服务器)
    python学习
    python多线程概念
    python 多线程就这么简单(续)
    打包一沓开源的 C/C++ 包管理工具送给你!
    讲解开源项目:功能强大的 JS 文件上传库
  • 原文地址:https://www.cnblogs.com/tinaluo/p/5262095.html
Copyright © 2011-2022 走看看