直接插入排序
每趟将一个元素,按照其大小,插入到前面已排序的子序列,以此重复
图
代码实现
public class InsertSort {
private int[] keys = {21,43,65,33,56,43,34};
public static void main(String[] args) {
InsertSort insertSort = new InsertSort();
int[] sort = insertSort.sort(insertSort.keys, true);
for (int i = 0; i < 7; i++) {
System.out.println(sort[i]);
}
}
//利用布尔值asc设定升序降序
public int[] sort(int[] keys,boolean asc){
for (int i = 1; i < keys.length; i++) {
//待插入 值
int x = keys[i],j;
//同有序序列依次比较
for (j = i-1; j >=0 && (asc?x<keys[j]:x>keys[j]); j--) {
keys[j+1] = keys[j];
}
keys[j+1] = x;
}
return keys;
}
}