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;
         }
            
    }
  • 相关阅读:
    idea-----Intellij IDEA配置tomcat(非maven项目)
    idea-----idea的项目中output框出现乱码
    mysql on windows的安装
    maven配置
    安装tomcat8.5
    jdk11.0.2安装
    idea创建maven web项目
    Mac下使用sshpass让iterm2支持多ssh登录信息保存
    iterm 2快捷键
    java 8 Base64用法
  • 原文地址:https://www.cnblogs.com/tinaluo/p/5262095.html
Copyright © 2011-2022 走看看