请描述一下冒泡排序?

【思路】冒泡排序的思想是始终将第一位存放最小值(或最大值,此文以最小值举例),一旦遇到比默认的最小值还小的,则将那个更小的放到第一位作为最小值与其他值继续比较。同理存放第二位以及之后的位置。

代码:

 1 public static void main(String[] args) {
 2         int[] a = {4,3,5,6,1,7,2,8,9};
 3         int temp;
 4         
 5         for (int i = 0; i < a.length; i++) {  
 6             for (int j = i+1; j < a.length; j++) {
 7                 
 8                 if(a[j]<a[i]){
 9                     temp = a[i];
10                     a[i] = a[j];
11                     a[j] = temp;
12                 }
13                 
14             }
15         }
16         
17         //输出排序后的数组
18         for (int i = 0; i < a.length; i++) {
19             System.out.print(a[i]+ " ");
20         }
21 
22     }

代码非常简单,也很早就知道怎么写,但是面试的时候要求讲解一下,突然有点不知所措,才发觉一直没有理解,只是以为理解了而已。

主要在于:是某个位置上的值在与其后面的位置上的值比较大小,当值调换之后,仍然是这个位置上的值与剩下的值作比较,直到这一轮比较结束。

面朝大海,春暖花开。
原文地址:https://www.cnblogs.com/HapLe0/p/5695087.html