数组排序之冒泡排序

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

何为排序????数组

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

冒泡排序:学习

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

看图:blog

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

对应到代码上就是:for循环

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

 

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

 

 

/**
* 对指定的 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

相关文章
相关标签/搜索