直接插入排序的基本操作是將一個記錄插入到已經安排好序的有序表中,從而得到一個新的,記錄數增1的有序表
時間複雜度
- 最好情況,排序表本身基本有序,時間複雜度爲O(n)
- 最壞情況,排序表是逆序,時間複雜度爲O(n2)
- 平均情況,時間複雜度爲O(n2)
public void InsertSort(int[] array) {
int j;
for(int i = 1;i<array.length;i++){
int flag = array[i]; //設置哨兵
if(array[i]<array[i-1]){
for(j = i-1;j >= 0 && array[j]>flag;j--){
array[j+1] = array[j];
}
array[j+1] = flag;
}
}
}