1、新数组法
创建新数组,根据角标变化规律赋值
2、环形替换法,看了很久才明白这个逻辑
是把数组的最后达到不需建立新数组实现值的变化,归位一个,记录一个有点像哈希排序的跳跃,不过这个不是到超过数组最大长度为止,而是继续加,加了之后取余再判断是否形成闭环了,是否需要到下一个环。
分为两种情况
一是只有一个环,到最后和开始位置重合,全部已经归位
二是不止一个环,在全部归位之前能形成闭环
因为两种方式最终都是会移动相当于数组长度个数据到正确的位置,所以我选择用了移动次数和数组长度比较。
1、新数组法
创建新数组,根据角标变化规律赋值
2、环形替换法,看了很久才明白这个逻辑
是把数组的最后达到不需建立新数组实现值的变化,归位一个,记录一个有点像哈希排序的跳跃,不过这个不是到超过数组最大长度为止,而是继续加,加了之后取余再判断是否形成闭环了,是否需要到下一个环。
分为两种情况
一是只有一个环,到最后和开始位置重合,全部已经归位
二是不止一个环,在全部归位之前能形成闭环
因为两种方式最终都是会移动相当于数组长度个数据到正确的位置,所以我选择用了移动次数和数组长度比较。