a1 = [2, 1, 3]
b1 = [1, 1, -2]
正确答案:[3,2,1]
a1是数据,b1是下标,请问如何根据b1提供的下标对a1进行排序,其中b2里面的-2代表向左边移动2位,所以最后的结果是[3,2,1],请问大佬应该如何实现!!
a1 = [2, 1, 3]
b1 = [1, 1, -2]
正确答案:[3,2,1]
a1是数据,b1是下标,请问如何根据b1提供的下标对a1进行排序,其中b2里面的-2代表向左边移动2位,所以最后的结果是[3,2,1],请问大佬应该如何实现!!
typescript版本
const a1 = [2, 1, 3];
const b1 = [1, 1, -2];
const sort = (arr: number[], indexes: number[]): number[] => {
const temp: number[] = Array.from({ length: arr.length });
for (let i = 0; i < arr.length; ++i) {
temp[i + indexes[i]] = arr[i];
}
return temp;
};
console.log(sort(a1, b1));
def offset_execute(arr,off):
do_offset(arr,off,0,arr[0],0)
def do_offset(arr,offset,start,item,count):
off = offset[start]
position = start + off
nextItem = arr[position]
arr[position] = item
count = count + 1
if(count != len(arr)):
do_offset(arr,offset,position,nextItem,count)
arr = [2,1,3]
offset = [1,1,-2]
offset_execute(arr,offset)
print(arr)
这不应该叫排序,应该叫移动,这比排序要简单很多。
2 回答5.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
2 回答857 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
Python 版