您的位置:首页 > 其它

【算法基础】插入排序

2017-06-28 23:40 246 查看
插入排序是对少量元素进行排序的有效方法。

过程好比打牌时按顺序整理扑克的过程。在发牌阶段,每次从桌上拿一张牌,插到左手上拿的牌的正确位置中。

例子

例如现在桌上的牌序列如下:

{3,5,8,7,1}

第一张牌3:

左手直接拿好第一张牌{3}

第二张牌5:

与左右上拿的3做比较,插到3的后面{3,5}

第三张牌8:

比5大,插到5的右边{3,5,8}

第四张牌7:

比8大,但比5小,插到5和8的中间{3,5,7,8}

第五张牌1:

从右往左比较分别比8,7,5,3都小,因此插到3的左边{1,3,5,7,8}

Java代码实现:

private static int[] insertionSort(int array[]){
for(int index=1;index<array.length;index++){
int key = array[index];

int j = index - 1;

System.out.print("key:" + key + " ");
while(j>=0 && array[j] > key){

System.out.print("Inner loop ");
array[j+1] = array[j--];
}
array[j+1] = key;
System.out.println();
}
for(int a:array){
System.out.print(a + ",");
}
return array;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: