问题标签 [bubble-sort]

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 回答
1204 浏览

javascript - 为什么冒泡排序的 Javascript 实现比其他排序算法快得多?

我做了一些关于Javascript 排序算法性能比较的研究,发现了意想不到的结果。冒泡排序提供了比 Shell 排序、快速排序和原生 Javascript 功能等其他方法更好的性能。为什么会这样?也许我的性能测试方法错了?

你可以在这里找到我的研究结果。

以下是一些算法实现示例:

0 投票
4 回答
4162 浏览

java - Java中的递归冒泡排序

我正在尝试用 Java 编写递归冒泡排序,但遇到了索引越界异常。我做错了什么,为什么会出现此错误?这是我的代码:

此外,即使它对数组进行排序并且最后我得到错误,它正在打印所有步骤,我如何让它打印最后一个最终排序的数组?可能是一个简单的答案,但我的大脑现在被炸了,无法思考。提前致谢。

0 投票
3 回答
322 浏览

c++ - 对冒泡排序方法感到好奇

我在这里创建了一个简单的冒泡排序脚本,它接收数组并对它们进行排序,这只是代码的片段。但它是对它进行排序的代码。我想做到这一点而不是在每次通过时进行九次左右的比较,而是修改冒泡排序以在第二次通过时减少八次或一次比较,在第三次通过时减少七次,依此类推。我完全迷失了如何实现它。最好的主意是什么?

0 投票
2 回答
1323 浏览

c++ - 冒泡排序不使用此算法对最后一个数字进行排序

我遇到问题,此代码中的最后一个数字未排序。

0 投票
2 回答
1055 浏览

java - 数组对角邻域分析和排序

我已经为此奋斗了一段时间,似乎无处可去。设置是这样的;我有一个二维数组。对于这个数组,我需要遍历每个值并返回对角线邻居(5 个值)。这些邻居将被放入一个新的 1D [5] 数组并进行冒泡排序。然后将返回中间值(中位数)并将其放入新的中位数数组中。

到目前为止,我有提取对角线邻居的方法:

然后,我在迭代中使用此方法来获取原始数组中每个值的对角线:

我想这就是我要摆脱困境的地方。通过测试 getDiagonals 方法可以正常工作。我正在努力将 tempArray 从 bubbles() 方法中取出。如果我将输出设置为 tempArray 它只返回为原始数组的右下角计算的 5 个值。

我尝试在 bubbles() 方法中调用其他方法,以便在那里进行所有处理并返回一个新数组:

这又失败了,输出 datap 只是零。上面的 sort() 方法将对角线传递给冒泡排序方法(我知道它适用于它

我想我的问题是如何在迭代和填充新数组的方法中进行处理?

我希望这是有道理的,但如果您需要更多详细信息,请告诉我。是的,我使用的排序是冒泡排序。我知道它们很垃圾,但这是针对我正在做的一门课程,所以必须使用它。是的,我对java很陌生。

任何帮助将不胜感激(如果我需要使用您提供的一些代码,我什至会参考您;)

0 投票
1 回答
16029 浏览

c - C OpenMP 并行冒泡排序

我使用 OpenMP 在 C 中实现了并行冒泡排序算法(奇偶转置排序)。然而,在我测试它之后,它比串行版本慢(大约 10%),尽管我有一个 4 核处理器(2 real x 2,因为 Intel 超线程)。我已经检查过内核是否实际被使用,并且在运行程序时我可以看到它们每个都是 100%。因此我认为我在实现算法时犯了一个错误。

我正在使用内核 2.6.38-8-generic 的 linux。

这就是我的编译方式:

gcc -o bubble-sort bubble-sort.c -Wall -fopenmp或者

gcc -o bubble-sort bubble-sort.c -Wall -fopenmp对于串行版本

这就是我的运行方式:

./bubble-sort < in_10000 > out_10000

后期编辑:

在我做出您建议的更改后,它现在似乎运行良好。它的扩展性也很好(我也在 8 个物理核心上进行了测试 -> 一组 150k 的数字用了 21 秒,这远远少于一个核心)。但是,如果我自己设置 OMP_SCHEDULE 环境变量,性能会降低......

0 投票
1 回答
313 浏览

python - 冒泡排序错误

我正在尝试编写和优化冒泡排序,但我的代码实际上并没有直接通过列表排序。关于它为什么提前停止的任何建议?

0 投票
4 回答
1604 浏览

c - 优化 C 中的冒泡排序,这将减少按升序对数字列表进行排序所需的交换次数

据我了解,冒泡排序(低效版本)将执行以下操作:

  1. 比较元素[0]和元素[1]
  2. 如果[0]大于[1],则交换完成。
  3. 如果[1]大于[0],则没有完成交换。

然后冒泡排序将继续比较元素[1]等等[2],总共创建 9 次交换。

但是,有没有办法保证在第一次通过时,最高的数字将在适当的位置[9],而在第二次通过时,两个最高的数字将在适当的位置[7][8]

0 投票
4 回答
792 浏览

c++ - 由 csv 文件填充的结构化列表中的冒泡排序

我加载了一个 .csv 文件来填充我的结构

如何在我的列表中进行冒泡排序?

我尝试了以下

我认为这是因为list->index[y]. 它就像数据库中的一个表......在位置 0(索引),我有数据和指向下一个节点的指针。我list->index[..]想传递位置并获取该节点,例如数组。它是一个链表,prox需要指向下一个节点。我用来自 .csv 文件的数据和list->prox指向下一个节点的数据填充了我的列表。

0 投票
3 回答
362 浏览

java - 在 Java 中使用 BubbleSort 进行数组排序时出错

我正在尝试创建一个数组,其“总”数量在最小值和最大值之间。然后,使用冒泡排序对它们进行排序。当我执行时,我得到全零。有人能找出问题所在吗?及时回复将不胜感激。