问题标签 [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.
c++ - 在 Shell Sort C++ 中跟踪数组中元素的移动次数
我有这个关于在 C++ 中实现 Shell Sort 的任务。我已经设法在 Shell Sort 中获得数组中元素之间的比较次数。但是,我无法弄清楚在比较发生后如何识别元素的移动次数。这是我的 Shell Sort 代码(我从 Internet 获得此代码)
希望有人能帮我弄清楚。提前致谢。
c - 从第 62 页的 c K&R Book 中了解 ShellSort 代码
我试图理解第 62 页 K&R 书中的 ShellSort 代码。但有一部分我不确定。
所以这是书中的原始代码:
我试图理解为什么会有第三个循环。只能是不能吗?
这是代码的更改版本(我认为也可以使用的版本):
当我运行代码时,它输出与第一个代码相同的内容:
输出:
12345679
但肯定有一些理由for
在那里使用。我找不到那是什么原因。所以我想有人可以清除这个吗?
c - Shell排序中的h排序
在 shell 排序中,3h+1
建议使用插入排序对列表进行 h 排序
//1, 4, 13, 40, ...
计算起始值的最佳公式h
是 的三分之一listsize
,如下所示,
问题:
要执行 shell 排序,如何在数学上证明h
(at max) 应该小于listSize/3
?
java - 计算shell排序中的比较次数
使用此代码,我必须计算进行的元素比较的数量。话虽如此,我不确定比较是在 sort() 方法的 for 循环中还是在 less() 方法中完成的。非常感谢你的帮助。
/************************************************* ****************************** * 辅助排序功能。****************************************************** *************************/
/************************************************* ****************************** * 检查数组是否已排序 - 对调试很有用。****************************************************** ************************/
c - shell排序的时间复杂度
为什么与冒泡排序和插入排序相比,shell 排序的时间复杂度更低?我们如何计算时间复杂度,我的意思是我们认为我们的代码是高时间复杂度还是低时间复杂度?
algorithm - 对shell排序的理解
我有几个关于壳牌排序与壳牌差距的问题在网上找不到。
这是我在网上找到的代码,但我不太明白最后一个else语句。5.0/11 代表什么?我还需要分析算法的复杂性,尽管我收到了相当令人困惑的结果:
似乎最好和最坏的情况都是 O(n)。这些结果合法吗?
c++ - shellsort 算法不工作
我想自己实现 shellsort 而不是复制粘贴在线的,如果有人能帮助我找到错误并改进我愚蠢的 lil 代码,我将不胜感激我将把我的代码写在下面
我的输出是:
java - 从输入文件中对数组进行 Shellsorting
完整的项目是从一个文件中获取数据,该文件是一个文本文件,其中包含所有 201 个国家/地区的列表以及它们按字母顺序排列的各自互联网使用率。这是一个例子
有了这个,我们必须以数字方式(特别是)对数据进行 Shellsort。我已经成功地做到了这一点,但我只输出了一个百分比列表,因为我还需要列出的国家。这是我的代码:
所以我的问题是我该如何输出这些国家呢?我需要完全重做我的排序方式吗?这是我的示例输出:
c++ - 在 C++ 中使用线程进行 Shell 排序
我正在尝试使用线程库实现并行 shell 排序。
我需要将初始整数数组划分为thN部分,在thN线程中对它们进行排序,最后将它们合并在一起。下面的代码没有合并部分,因为起初我想找出线程中排序不能正常工作的原因(没有任何警告或错误,整数只是保持未排序)。
我在简单的示例中检查了线程工作,一切正常。
那么谁能告诉我我做错了什么?
c - 使用 hibbard 增量进行 shell 排序
我是 C 新手。我想在 C 中使用 hibbard 增量进行 shell 排序实验。而且,为了测试最坏的情况,我总是根据输入大小构建一个反向数组。我希望看到时间复杂度 O(n^1.5) 之后的运行时间。但是,我的输出以某种方式遵循时间复杂度 O(n)。以下是我的代码。如果有人可以帮助我找到问题所在,我将不胜感激。
我的输出是: