希尔排序

算法描述:
希尔排序,也称递减增量排序算法,是【插入排序】的一种更高效的改进版本。但希尔排序是非稳定排序算法。

基本思想:
希尔排序是把序列按下标的一定【增量分组】,对每组使用直接【插入排序】算法排序;随着增量的逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个序列恰好被分为一组,算法便终止

代碼實現:

点击查看代码
   public static void shellSort(int[] arr)
        {
            int num = arr.Length / 2;

            while (num > 0)
            {
                for (int k = 0; k < arr.Length - num; k++)
                {
                    for (int h = k; h < arr.Length - num; h++)
                    {
                        if (arr[h] > arr[k + num])
                        {
                            var tempitem = arr[h];
                            arr[h] = arr[k + num];
                            arr[k + num] = tempitem;
                        }
                    }
                    //輸出每一次交換后的數據
                    foreach (var item in arr)
                    {
                        Console.Write(item + " ");
                    }
                    Console.WriteLine("");
                }

                num = num / 2;
            }
        }
posted @ 2022-04-11 16:25  今天星闪闪  阅读(51)  评论(0)    收藏  举报