【发布时间】:2012-08-26 18:15:33
【问题描述】:
我阅读了 Cormen&Co 的“算法简介”并在 java 上实现算法。我想知道在最终的set() 方法中写入插入排序代码 if 语句是否有意义?如果可能的话,我想让代码更快。
public static void insertion(List<Integer> a) {
List<Integer> aList = a;
int temp;
int previousIndex;
for (int i = 1; i < aList.size(); i++) {
temp = aList.get(i);
previousIndex = i - 1;
while ((previousIndex >= 0) && aList.get(previousIndex) > temp) {
aList.set(previousIndex + 1, a.get(previousIndex));
previousIndex--;
}
//if(aList.get(previousIndex + 1) > temp){
aList.set(previousIndex + 1, temp);
//}
}
}
对不起,如果它是初级的。我是初学者。
【问题讨论】:
-
函数的第一行是use less:你只是指向同一个对象。你应该做什么 id
aList = a.clone()或aList = new ArrayList<Integer>()并使用循环复制元素。 -
我只是查看了
Introduction to algorithms内部,而if不在他们的伪代码中。反正也不需要。我真的不明白你在问什么? -
@Tudor,如果可能的话,我只想让代码更快。 if 语句不在插入排序伪代码中。
-
@elyashiv,它很有用。谢谢!
标签: java algorithm insertion-sort