【发布时间】:2019-12-10 16:06:51
【问题描述】:
我有一个问题:我被要求编写一个与插入排序相关的函数。通过给出一个数字,函数会将下一个 i 值向右移动,并注意“i 值”中最后一个值将被前一个值覆盖。例如: 9,8,7,6,5,数字是 i = 2: 将变为:9,8,7,7,6 而 5 被溢出。
到目前为止,这是我写的代码:
public static void shift(int [] arr, int i) {
if(i < arr.length / 2) {
for(int j = i + i; j > i; j--) {
arr[j] = arr[j - 1];
}
}
else {
for(int j = arr.length - 1; j > i; j--) {
arr[j] = arr[j - 1];
}
}
}
现在我需要将它与插入排序结合起来,但我尝试了但没有成功。 有人可以帮忙吗?谢谢。
【问题讨论】:
-
请再举一个例子,我仍然没有正确回答问题。比如说,对于 2、3、4、5、6、7 和 i=3,移位后的值是多少?
-
应该是:2,3,4,5,5,6
标签: java insertion-sort