gpt4 book ai didi

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

转载 作者:数据小太阳 更新时间:2023-10-29 04:07:28 26 4
gpt4 key购买 nike

我做了一些research关于Javascript排序算法的性能比较,发现意想不到的结果。冒泡排序提供了比其他排序(例如 Shell 排序、快速排序和 native Javascript 功能)更好的性能。为什么会这样?也许我的性能测试方法有误?

你可以找到我的研究结果here .

下面是一些算法实现的例子:

  /**
* Bubble sort(optimized)
*/
Array.prototype.bubbleSort = function ()
{
var n = this.length;
do {
var swapped = false;
for (var i = 1; i < n; i++ ) {
if (this[i - 1] > this[i]) {
var tmp = this[i-1];
this[i-1] = this[i];
this[i] = tmp;
swapped = true;
}
}
} while (swapped);
}

/**
* Quick sort
*/
Array.prototype.quickSort = function ()
{
if (this.length <= 1)
return this;

var pivot = this[Math.round(this.length / 2)];

return this.filter(function (x) { return x < pivot }).quickSort().concat(
this.filter(function (x) { return x == pivot })).concat(
this.filter(function (x) { return x > pivot }).quickSort());
}

最佳答案

这是因为在对已排序的数组进行排序时,冒泡排序速度更快。

当您一遍又一遍地对同一个数组进行排序时,它将在第一次测试的第一次迭代中进行排序,之后您将对一个已经排序的数组进行排序。

要测试对尚未排序的数组进行排序的实际性能,您必须为每次排序迭代创建一个新数组。

关于javascript - 为什么冒泡排序的 Javascript 实现比其他排序算法快得多?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7696520/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com