zoukankan      html  css  js  c++  java
  • 常用算法Java实现之冒泡排序

      冒泡排序是所有排序算法中最基本、最简单的一种。思想就是交换排序,通过比较和交换相邻的数据来达到排序的目的。
      具体流程如下:
      1、对要排序的数组中的数据,依次比较相邻的两个数据的大小。
      2、如果前面的数据大于后面的数据,就把这两个数据进行交换。这样一轮比较和交换过后,就把最小的数据放在数组的最前面;
      3、按照上述比较和交换的方法,把剩下的数据再进行相同操作,最后,便可按照从小到大的顺序对数组完成排序。
      假如有初始数据:25  11  45  26  12  78。
      1、第一轮排序,从数组的头部开始进行比较。首先是 25 和 11 比较,25 大,将数据 11 向前移一位。同理,比较 25 和 45, 后一个即 45 大,位置不动。再比较45 和 26,前一个数大,所以 45 后移一位。第一轮排序后,顺序为:[11, 25, 26, 12, 45, 78]。
      2、第二轮排序,从数组的头部开始进行比较。首先是 11 和 25 比较,由于前面的数小,所以位置不动。比较25 和 26 ,由于前面的数小,所以位置不动。第二轮排序后,顺序为:[11, 25, 12, 26, 45, 78]。
      3、第三轮排序,从数组的头部开始进行比较。首先是 11 和 25 比较,由于前面的数小,所以位置不动。比较 25 和 12,由于前面的数大,所以位置互换。第三轮排序后,顺序为:[11, 12, 25, 26, 45, 78]。
      ......
      4、最后一轮排序后,顺序为:[11, 12, 25, 26, 45, 78]
     
      java 代码实现为:(https://github.com/xbk417/algorithm
     1 public int[] sort(int[] arr) {
     2     int tmp;
     3     for(int i = 1; i < arr.length; i++) {
     4         // 判断相邻两个数据的大小,并把较大的数往后冒泡
     5         for(int j = 0; j < arr.length - 1; j++) {
     6             if(arr[j] > arr[j+1]) {
     7                 tmp = arr[j];
     8                 arr[j] = arr[j+1];
     9                 arr[j+1] = tmp;
    10             }
    11         }
    12         System.out.println(i + ":" + Arrays.toString(arr));
    13     }
    14     return arr;
    15 }
  • 相关阅读:
    ArcObjects
    Dojo是什么?
    百度地图是什么坐标系?
    高德地图API
    地理POI数据爬取-以百度地图为例
    Microsoft Help Viewer&ArcGIS Server二次开发.net篇 (一) 安装
    DevOps:Docker VS Kubernetes
    JUnit测试环境搭建
    嵌入式tomcat
    如何使用ABAP发送带有PDF格式附件的电子邮件
  • 原文地址:https://www.cnblogs.com/LeslieXia/p/5803633.html
Copyright © 2011-2022 走看看