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

    思想(升序):

      1.比较两个相邻数据之间的大小,保证大的值在后面,最后,经过一次排序后会选出本次数组中的最大值,放在最后一位;

      2.在排除上一次的最大值数组中,再选出一位最大值放在最后一位;

      3.直到排除(选出)数组长度-1个最大值后,排序完成;

    比如:数组为{10  ,34  ,300  ,56  ,6,  56  ,7  ,87  ,  5}数组长度为9;

      

    public class find_em {
        public static void main(String[] args){
            int arr[]={10,34,300,56,6,56,7,87,5};
            System.out.println("原始数据:");
            for(int i=0;i<arr.length;i++){
                System.out.print(arr[i]+"	");
            }
            System.out.println("
    排序(升序):");
            
            //冒泡排序
            for(int j=1;j<arr.length;j++){  //控制循环次数,也就是选出几个最大值后停止
                for(int i=0;i<arr.length-j;i++){  //交换数据,选出最大值
                    if(arr[i]>arr[i+1]){    //如果是降序只要将这里改为<号即可
                        int t=arr[i+1];
                        arr[i+1]=arr[i];
                        arr[i]=t;
                    }
                }
                for(int i=0;i<arr.length;i++){
                    System.out.print(arr[i]+"	");
                }
                System.out.println("选出本次最大值:"+arr[arr.length-j]);
            }
            System.out.println("排序后的数据:");
            for(int i=0;i<arr.length;i++){
                System.out.print(arr[i]+"	");
            }
            
        }
    }

    结果:

    原始数据:
    10    34    300    56    6    56    7    87    5    
    排序(升序):
    10    34    56    6    56    7    87    5    300    选出本次最大值:300
    10    34    6    56    7    56    5    87    300    选出本次最大值:87
    10    6    34    7    56    5    56    87    300    选出本次最大值:56
    6    10    7    34    5    56    56    87    300    选出本次最大值:56
    6    7    10    5    34    56    56    87    300    选出本次最大值:34
    6    7    5    10    34    56    56    87    300    选出本次最大值:10
    6    5    7    10    34    56    56    87    300    选出本次最大值:7
    5    6    7    10    34    56    56    87    300    选出本次最大值:6
    排序后的数据:
    5    6    7    10    34    56    56    87    300    

     比较次数:36
      交换次数:20

  • 相关阅读:
    矩阵快速幂
    BITSET
    不再以讹传讹,GET和POST的真正区别(转)
    Anaconda 镜像
    Anaconda常用命令大全
    如何使用抓包工具fiddler对app进行接口分析
    windows10搭建django1.10.3+Apache2.4
    如何用jenkins实现自动化构建新版本和二维码下载
    解决从jenkins打开robot framework报告会提示‘Opening Robot Framework log failed ’的问题
    Macaca开源--阿里的移动自动化测试框架
  • 原文地址:https://www.cnblogs.com/feiquan/p/8973300.html
Copyright © 2011-2022 走看看