冒泡排序
将代码直接复制即可
@Test
public void testSort(){
int[] array = new int[]{4, 7, 2, 3, 1, 8, 6, 9, 5};
for (int i : array) {
System.out.print(i + " ");
}
System.out.println("\n");
sort(array);
for (int i : array) {
System.out.print(i + " ");
}
}
/**
* 本排序方法就是一次将当前的值和后面的值做比较得到最小值
* 然后再拿后面一个一次往后面作比较,,,,
*/
private void sort(int[] array) {
for (int i = 0; i < array.length - 1; i++){
//最小值的索引,初始是剩余遍历的第一个元素索引
int index = i;
//为什么是j = i+1,
// 因为遍历过的索引i就在下面index != i 中,就已经是当前遍历的最小值了
for (int j = i+1; j < array.length; j++){
if (array[j] < array[index]){
//遇到比自己小的就记住索引
index = j;
}
}
//将遍历到的最小的值和当前遍历到的值交换
if (index != i){
int temp = array[index];
array[index] = array[i];
array[i] = temp;
}
}
}
原始数组 4 7 2 3 1 8 6 9 5
下面是每一次遍历的结果
1 7 2 3 4 8 6 9 5
1 2 7 3 4 8 6 9 5
1 2 3 7 4 8 6 9 5
1 2 3 4 7 8 6 9 5
1 2 3 4 5 8 6 9 7
1 2 3 4 5 6 8 9 7
1 2 3 4 5 6 7 9 8
1 2 3 4 5 6 7 8 9