数组排序之冒泡排序

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

何为排序????

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

冒泡排序:

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

看图:

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

扫描二维码关注公众号,回复: 1926175 查看本文章

对应到代码上就是:

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

 

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

 

 

/**
* 对指定的 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工具包,希望做到最优

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

 

 

 

 对应博客园文章:http://www.cnblogs.com/zhang-yan/p/7281913.html

禁止转载-----必究

张岩

 2017-08-03

 

 

猜你喜欢

转载自blog.csdn.net/qq_31368673/article/details/76651411