美文网首页
希尔排序算法实现-加岗哨

希尔排序算法实现-加岗哨

作者: 执着的人请保持微笑 | 来源:发表于2023-04-16 08:39 被阅读0次

//待排序数组

          var sortArray = [1,2,5,1000,500,200,49,100,50,40,30,20];

          //加“监听哨”

          sortArray.insert(0, 0);

          //打印待排序数组

          print(sortArray);

          //希尔排序

          int d = sortArray.length ~/ 2;//计算步长

          int j = 0;

          while (d > 0) {

            //i = d+1,因为从1开始才是要排序的数据,0位是岗哨位,用来保存取出的待排序数据

            for (var i = d + 1; i < sortArray.length; i++) {

              j = i - d;

              while (j > 0) {

                if (sortArray[j] > sortArray[j + d]) {

                  //比较根据步长取出的数据,j位的数据大于j+d位的数据,就交换他们的位置

                  sortArray[0] = sortArray[j];

                  sortArray[j] = sortArray[j + d];

                  sortArray[j + d] = sortArray[0];

                  j = j - d;

                } else {

                  j = -1;

                }

              }

            }

            d = d ~/ 2;

          }

          //移除监听哨

          sortArray.removeAt(0);

          print("排完序的数组${sortArray}");

相关文章

  • 2.2-插入排序-希尔排序

    参考链接 插入排序:希尔排序(Shell's Sort) 白话经典算法系列之三 希尔排序的实现 希尔排序是1959...

  • 排序算法(四) 希尔排序(插入排序的进化)

    参考Java排序算法(四):希尔排序常见排序算法 - 希尔排序 (Shell Sort) 希尔排序算法是按其设计者...

  • 排序算法(二)之希尔排序

    图解排序算法(二)之希尔排序 希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也...

  • 排序-希尔排序(分治)

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

  • swift经典算法-希尔排序

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

  • 排序算法④——希尔排序

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

  • java实现快速排序、归并排序、希尔排序、基数排序算法...

    快速排序算法 归并排序算法 希尔排序算法 基数排序算法

  • 希尔排序学习

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

  • 排序算法-7---希尔排序

    排序算法-7---希尔排序 概念 希尔排序(Shellsort),也称递减增量排序算法,是一种典型的插入排序算法,...

  • 希尔排序

    希尔排序一种是很常见的排序算法,该算法在1959年由Donald Shell公布。 希尔排序的奥妙 1、希尔排序的...

网友评论

      本文标题:希尔排序算法实现-加岗哨

      本文链接:https://www.haomeiwen.com/subject/mvwaddtx.html