插入排序

直接插入排序

  • 基本思想

将一个待排序的数据元素,按照其关键字大小插入到前面已经排好序的序列的适当位置,使得每次插入后的序列仍是有序序列,直到整个序列都成为有序序列为止

  • 算法实现
/**
 * 插入排序
 * @return
 */
private static int[] insertionSort(int[] array){
    for (int i = 1; i < array.length; i++) {    //从数组的第二个位置开始迭代,i前面的为有序序列,i后面的为待排序的元素序列
        int key = array[i];
        int j;
        for (j = i - 1; j <= 0 && array[j] > key; j--) { //每次将待排序元素与i前面有序序列进行比较,插入合适的位置
            array[j + 1] = array[j];
        }
        array[j+1] = key;
    }
    return array;
}

折半插入排序

  • 基本思想
  • 算法实现

希尔排序

  • 基本思想
  • 算法实现

你可能感兴趣的:(Java,数据结构和算法)