using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class 希尔排序 : MonoBehaviour
{
int[] arr = { 8, 7, 10, 2, 1, 0, 21, 20 };
void Start()
{
for (int i = 0; i < arr.Length; i++)
{
Debug.Log(希尔排序Test(arr)[i]);
// 0 1 2 7 8 10 20 21 插入排序的升阶版
}
}
public int[] 希尔排序Test(int[] arr)
{
for (int gap = arr.Length/2; gap >0; gap/=2)
{
for (int i = gap; i < arr.Length; i++)
{
int index = i;
int curValue = arr[i];
while (index - gap >= 0 && arr[index - gap] > curValue)
{
arr[index] = arr[index - gap];
index = index - gap;
}
arr[index] = curValue;
}
}
return arr;
}
}
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交