问题标签 [shellsort]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
667 浏览

c++ - 在 Shell Sort C++ 中跟踪数组中元素的移动次数

我有这个关于在 C++ 中实现 Shell Sort 的任务。我已经设法在 Shell Sort 中获得数组中元素之间的比较次数。但是,我无法弄清楚在比较发生后如何识别元素的移动次数。这是我的 Shell Sort 代码(我从 Internet 获得此代码)

希望有人能帮我弄清楚。提前致谢。

0 投票
1 回答
293 浏览

c - 从第 62 页的 c K&R Book 中了解 ShellSort 代码

我试图理解第 62 页 K&R 书中的 ShellSort 代码。但有一部分我不确定。

所以这是书中的原始代码:

我试图理解为什么会有第三个循环。只能是不能吗?

这是代码的更改版本(我认为也可以使用的版本):

当我运行代码时,它输出与第一个代码相同的内容:

输出:

12345679

但肯定有一些理由for在那里使用。我找不到那是什么原因。所以我想有人可以清除这个吗?

0 投票
2 回答
989 浏览

c - Shell排序中的h排序

在 shell 排序中,3h+1建议使用插入排序对列表进行 h 排序

//1, 4, 13, 40, ...

计算起始值的最佳公式h是 的三分之一listsize,如下所示,

问题:

要执行 shell 排序,如何在数学上证明h(at max) 应该小于listSize/3

0 投票
1 回答
1172 浏览

java - 计算shell排序中的比较次数

使用此代码,我必须计算进行的元素比较的数量。话虽如此,我不确定比较是在 sort() 方法的 for 循环中还是在 less() 方法中完成的。非常感谢你的帮助。

/************************************************* ****************************** * 辅助排序功能。****************************************************** *************************/

/************************************************* ****************************** * 检查数组是否已排序 - 对调试很有用。****************************************************** ************************/

0 投票
1 回答
543 浏览

c - shell排序的时间复杂度

为什么与冒泡排序和插入排序相比,shell 排序的时间复杂度更低?我们如何计算时间复杂度,我的意思是我们认为我们的代码是高时间复杂度还是低时间复杂度?

0 投票
1 回答
203 浏览

algorithm - 对shell排序的理解

我有几个关于壳牌排序与壳牌差距的问题在网上找不到。

这是我在网上找到的代码,但我不太明白最后一个else语句。5.0/11 代表什么?我还需要分析算法的复杂性,尽管我收到了相当令人困惑的结果:

结果

似乎最好和最坏的情况都是 O(n)。这些结果合法吗?

0 投票
2 回答
93 浏览

c++ - shellsort 算法不工作

我想自己实现 shellsort 而不是复制粘贴在线的,如果有人能帮助我找到错误并改进我愚蠢的 lil 代码,我将不胜感激我将把我的代码写在下面

我的输出是:

0 投票
2 回答
306 浏览

java - 从输入文件中对数组进行 Shellsorting

完整的项目是从一个文件中获取数据,该文件是一个文本文件,其中包含所有 201 个国家/地区的列表以及它们按字母顺序排列的各自互联网使用率。这是一个例子

有了这个,我们必须以数字方式(特别是)对数据进行 Shellsort。我已经成功地做到了这一点,但我只输出了一个百分比列表,因为我还需要列出的国家。这是我的代码:

所以我的问题是我该如何输出这些国家呢?我需要完全重做我的排序方式吗?这是我的示例输出:

0 投票
1 回答
880 浏览

c++ - 在 C++ 中使用线程进行 Shell 排序

我正在尝试使用线程库实现并行 shell 排序。

我需要将初始整数数组划分为thN部分,在thN线程中对它们进行排序,最后将它们合并在一起。下面的代码没有合并部分,因为起初我想找出线程中排序不能正常工作的原因(没有任何警告或错误,整数只是保持未排序)。

我在简单的示例中检查了线程工作,一切正常。

那么谁能告诉我我做错了什么?

0 投票
2 回答
2367 浏览

c - 使用 hibbard 增量进行 shell 排序

我是 C 新手。我想在 C 中使用 hibbard 增量进行 shell 排序实验。而且,为了测试最坏的情况,我总是根据输入大小构建一个反向数组。我希望看到时间复杂度 O(n^1.5) 之后的运行时间。但是,我的输出以某种方式遵循时间复杂度 O(n)。以下是我的代码。如果有人可以帮助我找到问题所在,我将不胜感激。

我的输出是: