zoukankan      html  css  js  c++  java
  • 数组排序之冒泡排序

    排序一直都是一个比较绕的问题,虽然JAVA底层已经给我们实现的排序算法,但自己理解排序对我们以后课程的学习也是非常有必要的,下面就让我们来看看几种常见的排序。

    何为排序????

      简单来说就是将一组“无序”的记录序列调整为“有序”的记录序列。常见的有:冒泡排序、选择排序、和插入排序,我们也就先讲讲冒泡排序------------

    冒泡排序:

    冒泡排序是一种简单的排序算法,其核心思想就是-----大数下沉、小数上浮

    看图:

     如此一遍走完,最高个的人将在最后。

    对应到代码上就是:

    相信到此你也能明白冒泡排序的理论思想了,如果还不理解,你可以继续看,或者就关上它吧,等你再学一段时间再来吧!!!!

    好了,理论都介绍完了,该贴代码了--------------

    /**
    * 对指定的 int 型数组按数字升序进行冒泡排序
    * @param a 待排序的数组
    */
    public static void sortBubble(int[] a) {
      int temp;//用于交换的中间变量(建议在这里定义,否则在for循环里定义会降低程序效率)
      for (int i = 1; i < a.length; i++) {
        for (int j = 0; j < a.length - i; j++) {
          if (a[j] > a[j+1]) {
            temp = a[j];//三步交换
            a[j] = a[j+1];
            a[j+1] = temp;
          }
        }
      }
    }

    不要太纠结于代码,主要还是要理解这个过程就好

    ----------------不止这一种写法,你可能会在其它地方看到其它写法的,但这个应该是效率最高的了。如果你看到其它更好的写法,请告诉我

    我在建立自己的JAVA工具包,希望做到最优

    如果你也在写自己的工具包,我们可以互补一下。谢谢。。。

    禁止转载-----必究

    张岩

     2017-08-03

     

     

     

     

  • 相关阅读:
    给定一个排序数组,你需要在原地删除重复出现的元素
    OSPF-外部路由
    虚链路
    OSPF域间路由计算,防环
    转 C# 只允许运行一个实例
    转 点击关闭时最小化到任务栏
    C#,int转成string,string转成int
    SQL 查找表名 字段名
    C# *= 运算顺序
    SQL 批量删除表
  • 原文地址:https://www.cnblogs.com/zhang-yan/p/7281913.html
Copyright © 2011-2022 走看看