= 0; j--) {
if (array[j] > currentVal) {
array[j + 1] = array[j];
position -= 1;
} else {
break;
}
}
array[position] = currentVal;
}
}
public static void main(String[] args) {
int[] array = { 3,-1,-8,2,1 };
insertSort(array);
for(int i = 0 ;i<array.length;i++){
System.out.print(array[i]);
}
}
}
插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序的数据,在已排序序列中从后向前扫描,找到相应的位置并插入。
算法步骤:
将待排序序列的第一个元素看作一个有序序列,把第二个元素到最后一个元素当成是未排序序列;
从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置,如果相等,插入其后;
max 时间复杂度: O(n²) min时间复杂度:n
最简单最基本的排序算法,并不是最优,特点是简单,不需要额外的工作空间,元素少的时候工作好。