zoukankan      html  css  js  c++  java
  • Java连载70-冒泡算法、选择算法

    一、冒泡排序

    1.也就是依次选出最大的放在最后面

    package com.bjpowernode.java_learning;
    
    ​
    
    public class D70_1_BubbleSort {
    
      public static void main(String[] args) {
    
        /*
    
         * 冒泡排序算法:有一个int类型的数组:3 1 6 2 5
    
         */
    
        int[] a = {3,1,6,2,5,45,8,9,86};
    
        //开始排序
    
        for (int i=a.length-1;i>0;i--) {
    
          for (int j=0;j<i;j++) {
    
            if(a[j]>a[j+1]) {
    
              int temp = a[j];
    
              a[j] = a[j+1];
    
              a[j+1] = temp;
    
            }
    
          }
    
          //也可以这么写
    
          //for(int j=0;j<i;J++){
    
          //  if(a[j]>a[i]){
    
          //    int temp = a[j];
    
          //    a[j] = a[i];
    
          //    a[i] = temp;
    
          //}
    
        }
    
        for(int i=0;i<a.length;i++) {
    
          System.out.println(a[i]);
    
        }
    
       
    
      }
    
    }

    二、选择排序

    1.也就是依次选出最小的放在前面

    package com.bjpowernode.java_learning;
    
    ​
    
    public class D70_2_SelectionSort {
    
      public static void main(String[] args) {
    
        int [] a = {45,4,8,2,69,31,2,0};
    
        int min = 0;
    
        for(int i=0;i<a.length-1;i++) {
    
          for(int j=i+1;j<a.length;j++) {
    
            if(a[i]>a[j]) {
    
              int temp = a[i];
    
              a[i] = a[j];
    
              a[j] = temp;
    
            }
    
          }
    
        }
    
        for(int i=0;i<a.length;i++) {
    
          System.out.println(a[i]);
    
        }
    
      }
    
    }

    ​总结:在一个循环中,flag如果有上界,那么慎用flag+1这种操作,​容易造成数组越界;flag如果有下界,那么慎用flag-1这种操作,容易造成越界,​解决方式就是循环的初始数字要选好。

    四、源码:

    D70_2_SelectionSort.java
    D70_1_BubbleSort.java

    https://github.com/ruigege66/Java/blob/master/D70_1_BubbleSort.java

    https://github.com/ruigege66/Java/blob/master/D70_2_SelectionSort.java

    2.CSDN:https://blog.csdn.net/weixin_44630050

    3.博客园:https://www.cnblogs.com/ruigege0000/

    4.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料

     

  • 相关阅读:
    程序由多个文件组成时、 头文件
    c++ 数组,变量,指针,引用, 初始化,赋值
    linux 远程装机
    linux中firewall与iptables防火墙服务
    linu samba服务
    linux 中iscsi服务
    Linux中apache服务
    linux dns高速缓存
    linux 网络配置
    linux 数据库管理
  • 原文地址:https://www.cnblogs.com/ruigege0000/p/12174146.html
Copyright © 2011-2022 走看看