排序----冒泡排序
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]
以上是关于排序----冒泡排序的主要内容,如果未能解决你的问题,请参考以下文章