插入排序(Insert Sort)
直接插入排序的基本操作是将一个记录插入到已经排好的有序表中,从而得到一个新的、记录数增1的有序表,类似打扑克牌排列表。
时间复杂度:
1)最好情况o(n)
2)最坏情况o(n²/4)
插入排序比选择排序及冒泡排序性能好些
![](https://img.haomeiwen.com/i5423625/0d425defe6a7dfc1.png)
static void insertSort(int[] array) {
if (array != null && array.length > 0) {
int i, j, key;
for (i = 1; i < array.length; i++) {
key = array[i];
j = i - 1;
while (j >= 0 && key < array[j]) {
array[j + 1] = array[j];//// 如果要插入的元素小于第j个元素,就将第j个元素向后移动
j--;
}
array[j + 1] = key;// 直到要插入的元素不小于第j个元素,将insertNote插入到数组中
}
}
}```
/**
- 将数组的2个位置交换
*/
static void swap(int[] array, int i, int j) {
if (array != null && array.length > 0) {
if (i >= 0 && j >= 0 && i <= array.length && j <= array.length) {
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}```
网友评论