插入排序
插入排序简单来说就是看成两个数组一个有序数组一个无序数组,默认第一个值为有序数组,然后开始倒序比较,如下图:
public class insertionSort {
public static void main(String[] args) {
int [] numbers = {4,3,2,10,12,1,5,6};
//如上图从无序数组第一个开始也就是值为number[1]==3开始,与前面的有序数组{4}判断
for (int i = 1;i<numbers.length;i++){
//我们假设从第五趟排序来说{2,3,4,10,12,1,5,6},
// 1为无序数组第一个值那么倒着比较1将与12进行比较
//因为1小于12所以交换位置然后继续与10进行比较
for (int j=i;j>0;j--){
//比较索引j处的值和索引j-1处的值,如果索引j-1处的值比索引j处的值大则交换数据,如果不大那么找到合适的位置退出循环即可
if (numbers[j-1]>numbers[j]){
int temp = numbers[j-1];
numbers[j-1] = numbers[j];
numbers[j] = temp;
}else {
break;
}
}
}
for (int i = 0; i < numbers.length; i++) {
System.out.print(numbers[i]+" ");
}
}
}