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

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

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

    //待排序数组

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

              //打印待排序数组

              print(sortArray);

              //希尔排序

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

              int j = 0;

              int replaceObject = 0;

              while (d > 0) {

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

                  j = i - d;

                  while (j >= 0) {

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

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

                      replaceObject = sortArray[j];

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

                      sortArray[j + d] = replaceObject;

                      j = j - d;

                    } else {

                      j = -1;

                    }

                  }

                }

                d = d ~/ 2;

              }

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

    相关文章

      网友评论

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

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