排序----冒泡排序

Posted ntbll

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了排序----冒泡排序相关的知识,希望对你有一定的参考价值。

一.原理

  1.1.动态演示图

    技术图片

  1.2.动态图讲解

  冒泡排序每一次将数组最大的结果存放到数组尾部,经过n-1次上述操作,数组即有序.n为数组的长度.

  1.3.数据演示

  原始数据:8 4 7 10 6 5 4 8

  第一次排序过程:4 8 7 10 6 5 4 8  4 7 8 10 6 5 4 8  4 7 8 10 6 5 4 8   4 7 8 6 10 5 4 8  4 7 8 6 5 10 4 8  4 7 8 6 5 4 10 8  4 7 8 6 5 4 8 10

  第二次排序过程:4 7 8 6 5 4 8 10  4 7 8 6 5 4 8 10  4 7 6 8 5 4 8 10   4 7 6 5 8 4 8 10  4 7 6 5 4 8 8 10  4 7 6 5 4 8 8 10

  .....

二.代码实现

  

public class ArraySortUtils {

/**
* 冒泡排序
* @param array
*/
public static void bubbleSort(int[] array){
//要排序的次数
for(int i = 0; i < array.length -1; i++){
//每次排序将最大值存放到数组最后
for(int j = 0; j < array.length - i -1; j++){
//若前面的值大于后面进行交换
if(array[j] > array[j + 1]){
int temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
System.out.println("第" + (i+1) +"排序的结果为:" + arrayToString(array) );
}
}

/**
* 返回数组的字符串
* @param array
* @return
*/
public static String arrayToString(int[] array){
StringBuilder sb = new StringBuilder("[");
for (int i = 0; i < array.length; i++) {
if( i != (array.length - 1)){
sb.append(array[i] + ",");
}else{
sb.append(array[i] + "]");
}
}
return sb.toString();
}
}


public class ArraySortUtilsDemo {

public static void main(String[] args) {
//第一次 4 7 8 6 5 4 8 10
//第二次 4 7 6 5 4 8 8 10
int[] array = new int[]{8,4,7,10,6,5,4,8};
System.out.println("排序前:" + ArraySortUtils.arrayToString(array));
ArraySortUtils.bubbleSort(array);
System.out.println("排序后:" + ArraySortUtils.arrayToString(array));
}
}

三.演示结果

  排序前:[8,4,7,10,6,5,4,8]

  第1排序的结果为:[4,7,8,6,5,4,8,10]

  第2排序的结果为:[4,7,6,5,4,8,8,10]

  第3排序的结果为:[4,6,5,4,7,8,8,10]

  第4排序的结果为:[4,5,4,6,7,8,8,10]

  第5排序的结果为:[4,4,5,6,7,8,8,10]

  第6排序的结果为:[4,4,5,6,7,8,8,10]

  第7排序的结果为:[4,4,5,6,7,8,8,10]

  排序后:[4,4,5,6,7,8,8,10]

  

以上是关于排序----冒泡排序的主要内容,如果未能解决你的问题,请参考以下文章

交换排序(冒泡排序快速排序的算法思想及代码实现)

请问这个冒泡排序代码,每一行都是啥意思呀,谢谢

java冒泡排序法代码

排序算法之冒泡选择插入排序(Java)

排序算法之冒泡选择插入排序(Java)

冒泡排序python代码