【发布时间】:2014-04-03 00:03:33
【问题描述】:
我有两种方法,我打算对整数数组执行插入排序。第一种方法执行插入排序算法的外循环,而第二种方法递归地将特定元素插入到正确的位置。例如:
int [] list = {20, 50, 30, 10, 60, 40};
sort(list);
结果应该是{10,20,30,40,50,60}
我的问题在于插入方法;这是我的代码:
public static void sort(int[] list) {
int position;
for (position = 1; position < list.length; position++) {
insert(list, list[position], position);
}
}
public static void insert(int[] list, int element, int position) {
int position2 = position - 1;
if (position == list.length - 1) {
// do nothing
} else {
while ((position > 0) && (list[position - 1] > element)) {
element = list[position - 1];
insert(list, element, position - 1);
}
list[position] = element;
}
}
目前我的输出是,
{20, 50, 50, 50, 60, 40}
我不完全理解递归。请帮忙
【问题讨论】:
标签: java sorting recursion insertion-sort