• 冒泡排序的算法


    思想(升序):

      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

  • 相关阅读:
    POJ 1548 Robots(最小路径覆盖)
    <html>
    站点开发-日志-1
    JSP入门实战下
    rancher官方资源
    window10死机
    window10桌面图标空白
    sentry使用docker-compose部署
    docker下一步步部署sentry
    docker-compose编排服务
  • 原文地址:https://www.cnblogs.com/feiquan/p/8973300.html
Copyright © 2020-2023  润新知