插入排序

来源:互联网 发布:ubuntu docker 升级 编辑:程序博客网 时间:2024/06/06 08:54

1.算法描述

       插入排序的过程好比排序扑克牌。开始时,左手为空。然后,我们开始摸牌放入左手中,每摸起一张牌时,我们需要把它插入到左手已有牌中的合适位置,这里我们从右向左将这张牌与左手上已有的牌一次比较,左手上的牌总是排序好的。最终,我们得到整个排序好的序列。

2.算法实现


package sxd.learn.algorithms;public class InsertionSort {public static void main(String[] args){int[] iArray = {5, 2, 4, 6, 1, 3};INSERTION_SORT(iArray);for (int i = 0; i < iArray.length; i++) {System.out.print(iArray[i] + " ");}System.out.println();}public static void INSERTION_SORT(int[] iArray){for(int j = 1; j < iArray.length; j++){int i = j - 1;int key = iArray[j];while(i >= 0 && key < iArray[i]){iArray[i + 1] = iArray[i]; i--;}iArray[i+1] = key;}}}

3.算法分析

我们分析INSERTION_SORT函数执行所需要花费的时间,双层嵌套循环,最坏情况下的时间复杂度为O(n2)。


0 0