我个人理解的冒泡排序法:
冒泡法,好比像水里冒出气泡一样,每次从剩下的一堆数当中找出一个最大或最小的值。等所有的气泡都冒出来了,数值的顺序也就出来了。
BubbleSort.java
//package com.liany.demo.sort;
import java.util.Arrays;
/**
* 冒泡法排序
* @author modig
*/
public class BubbleSort {
public static void sort(int[] array){
for(int i = 0; i < array.length - 1; i++){
//当前值当作最小值
int min = array[i];
for(int j = i+1; j < array.length; j++){
if(min>array[j]){
//如果后面有比min值还小的就交换
min = array[j];
array[j] = array[i];
array[i] = min;
}
}
}
System.out.println(Arrays.toString(array));
}
/**
* @param args
*/
public static void main(String[] args) {
int[] array = {10,3,1,2,4,9,8,7,5,6,};
sort(array);
}
}
打印结果:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
以下je朋友hualang的方法也可以,不过不像冒泡法,更像沉石法, 每次最大的数往后扔,呵呵:
http://www.iteye.com/topic/1115964