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

    冒泡排序, 顾名思义,就是排序时,最大的元素会如同气泡一样移至右端,其利用比较相邻元素的方法,将大的元素交换至右端,所以大的元素会不断的往右移动,直到适当的位置为止。

    基本的气泡排序法可以利用旗标的方式稍微减少一些比较的时间,当寻访完数组后都没有发生任何的交换动作,表示排序已经完成,而无需再进行之后的循环比较与交换动作,例如:
    排序前:    95, 27, 90, 49, 80, 58, 6, 9, 18, 50  
    第 1 次排序:27 90 49 80 58 6 9 18 50 95
    第 2 次排序:27 49 80 58 6 9 18 50 90 95 
    第 3 次排序:27 49 58 6 9 18 50 80 90 95 
    第 4 次排序:27 49 6 9 18 50 58 80 90 95 
    第 5 次排序:27 6 9 18 49 50 58 80 90 95 
    第 6 次排序:6 9 18 27 49 50 58 80 90 95 
    第 7 次排序:6 9 18 27 49 50 58 80 90 95  -- 没有改变次序,排序完成

    Java代码实现

    /*  *
      * 冒泡排序
      * @param data:等待排序整型数组
      *     data = { 95, 27, 90, 49, 80, 58, 6, 9, 18, 50 }
      *    排序结果:
      *        第 1 次排序:27 90 49 80 58 6 9 18 50 95 
      *        第 2 次排序:27 49 80 58 6 9 18 50 90 95 
      *        第 3 次排序:27 49 58 6 9 18 50 80 90 95 
      *        第 4 次排序:27 49 6 9 18 50 58 80 90 95 
      *        第 5 次排序:27 6 9 18 49 50 58 80 90 95 
      *        第 6 次排序:6 9 18 27 49 50 58 80 90 95 
      *        第 7 次排序:6 9 18 27 49 50 58 80 90 95 
      */   
        public   void  sort( int [] data)  {
             int  max  =  data.length;
             boolean  hasChange  =   true ;
    
             for  ( int  i  =   0 ; i  <  max  -   1   &&  hasChange; i ++ )  {
                hasChange  =   false ;
                 for  ( int  j  =   0 ; j  <  max  -  i  -   1 ; j ++ )  {
                     if  (data[j  +   1 ]  <  data[j])  {
                         int  temp  =  data[j];
                        data[j]  =  data[j  +   1 ];
                        data[j  +   1 ]  =  temp;
                        hasChange  =   true ;
                    } 
                } 
                System.out.print( "  第   "   +  (i  +   1 )  +   "   次排序:  " );
                 for  ( int  k  =   0 ; k  <=  max  -   1 ; k ++ )  {
                    System.out.print(data[k]  +   "     " );
                } 
                System.out.println();
            } 
        }
  • 相关阅读:
    第一章-环境准备
    selenium-pageobject设计模式
    自动化测试用例设计原则
    selenium隔离环境安装、以及示例
    json extractor获取返回值中动态新增的数据
    jmeter返回值乱码问题
    liunx命令
    SQL表结构语句
    测试网络脚本python
    C# 订单流水号生成
  • 原文地址:https://www.cnblogs.com/cRaZy-TyKeIo/p/3626035.html
Copyright © 2011-2022 走看看