算法思想:
直接插入排序的排序思路是:每次将一个待排序的元素与已排序的元素进行逐一比较,直到找到合适的位置按大小插入。
将待排序的元素插入到已排序元素的正确位置。
例子:
红色是有序列,绿色是无序列,无序列等待依次插入到有序列中。
继续下去,直到安排好最后一个元素。
代码:
public class InsertSort {
public static void main(String[] args) {
int[] arr = new int[] {9,3,4,8,1,2,6,5,7};
sort(arr);
}
public static void sort(int[] a) {
//将第一个数[0]认为已排好序,遍历待排序坐标[1-最后一个]
for(int i=1;i<a.length;i++) {
//将待排序坐标与前面所有已排序数比较,小则交换
//目的是将待排序目标放到已排序序列中的正确位置
for(int j=i;j>0;j--) {
if(a[j-1]>a[j]) {
int temp = a[j];
a[j]=a[j-1];
a[j-1]=temp;
}
}
}
System.out.println(Arrays.toString(a));
}
}