1.背景
要说插入排序的发明者是怎么发明插入排序的,我想大概就是在斗地主的时候吧。
大A(姑且假定为插入排序的发明者)是一个学霸,在江湖中也是名声在外,人人聊起都是竖起大拇指的那种人物;但是大人物也是有苦恼的一面,话说家家有本难念的经;在那个高手如云的时代,必须要有一个投名状(那就是发明一种举世闻名的算法)。为此大A为这件事情伤透了脑筋,甚至是跑入自家山后面的山洞进行闭关修炼,写下了30w行代码也没有发明出举世震惊的算法。
衣带渐宽终不悔,为伊消得人憔悴。就这样几年过去了。大A虽然编程能力通过这几年的修炼已经达到了炉火纯青的地步;但是在排序界还是默默无闻。曾经的室友大B与大C听闻大A为了专研算法30多岁了还是一个老光棍,曾经帅气的面孔已经变为蜡黄色心中颇为感慨,一直想要劝他先成家后立业。今天一年一度的5年寝室聚会到了,大B与大C带上扑克牌,一瓶千年堆花酒来到大A家中,为啥要来大A家中呢,因为十年前大A就不曾踏出村门半步,所以只能是大B与大C相邀去大A家。大B与大C来到大A家,询问大A家人才发现大A已经在后山山洞修炼并且不允许任何人打扰他。这还了的,大B大C原来和大A可是拜把子兄弟,况且5年未见。岂能吃这个闭门羹。于是怒发冲冠连哄带偏的把大A揪出了山洞。
看到室友带的一副扑克牌,大A欣喜雀跃就像周伯通学会了小龙女的引蜂之术一样。大A对斗地主也是颇为爱好。于是三个人一张桌三张凳就开始了欢乐斗地主。首先来了一张红桃2,后来又来了一个方块7,来了一个梅花10… ,突然A高兴的站了起来,大声喊叫我知道了,我发现了,我知道了,我知道了… 并又飞奔回后山山洞。大B大C一脸茫然,以为大A精神错乱。当他们跑到山洞的时候,被下面的代码惊呆了,这段代码在一夜之间,让大A跻身为家喻户晓的人物。(本文纯属虚构,如有雷同纯属巧合)
- 代码
public class Solution {
/**
* 插入排序
*排序的数也称为关键词
* @param list
*/
public static void insertSort(List<Integer> list) {
for (int i = 0; i < list.size() - 1; i++) {
int j = i + 1;
int value = list.get(j);
while (j > 0 && value < list.get(j - 1)) {
list.set(j, list.get(j - 1));
j--;
}
list.set(j, value);
}
}
public static void main(String[] args) {
List<Integer> intList = new ArrayList<>();
intList.add(3);
intList.add(2);
intList.add(5);
intList.add(1);
intList.add(0);
intList.add(-1);
insertSort(intList);
intList.forEach(x-> System.out.println(x));
}
}