排序算法插入排序

插入排序(Insert Sort)
直接插入排序的基本操作是将一个记录插入到已经排好的有序表中,从而得到一个新的、记录数增1的有序表,类似打扑克牌排列表。

时间复杂度:

1)最好情况o(n)

2)最坏情况o(n²/4)
插入排序比选择排序及冒泡排序性能好些

Paste_Image.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;
    }
    }
    }```

推荐阅读更多精彩内容