冒泡排序: 用第一个值逐个与后面没有被处理过的值做对比
选择排序: 取每一个值与后边所有值中的最大或最小值与当前值互换
插入排序: 逐个比较当前值与前边有序列, 如果比当前值大或小则互换, 否则直接进行下一个循环
public class Test{
public static void main(String[] args) {
int[] array = new int[]{1, 23, 4, 6, 3, 24, 65, 3, 64, 35, 0};
int length = array.length;
int tmp;
//冒泡排序
for (int i = 0; i < length - 1; i++) {
for (int j = 0; j < length - 1 - i; j++) {
if (array[j] > array[j + 1]) {
tmp = array[j];
array[j] = array[j + 1];
array[j + 1] = tmp;
}
}
}
// 选择排序
for (int i = 0; i < length; i++) {
int index = i;
for (int j = i + 1; j < length; j++) {
if (array[index] < array[j]) {
index = j;
}
}
if (index == i) continue;
tmp = array[i];
array[i] = array[index];
array[index] = tmp;
}
// 插入排序
for (int i = 1; i < length; i++) {
for (int j = i; j > 0; j--) {
if (array[j] < array[j - 1]) {
tmp = array[j];
array[j] = array[j - 1];
array[j - 1] = tmp;
} else {
break;
}
}
}
// 打印
for (int i = 0; i < length; i++) {
System.out.println(array[i]);
}
}
}