gpt4 book ai didi

javascript - 哪种类型的排序算法与此代码最相似? (如果有的话)。

转载 作者:行者123 更新时间:2023-12-03 00:53:25 26 4
gpt4 key购买 nike

我正在学习编程(使用 Javascript),作为测试,我决定找到一种方法来编写一种算法来对字符串进行排序和数组,这就是我想到的。

// test of a sorting algorithm 
var steps = 0;
var steps2 = 0;
var array = ['assa', 'erer', 'qwqw', 'ggdffdghdg', 'sdsdethhhghg', 'aaaaaa', 'gthfyjfdsfdf', 'qwqwwere', 'jygyghhf', '1', '0', '345', 'sfsdsddsfsf', 'eee3ew33', '1dwd', 'ddd2'];


var array2 = ['erer', 'jygyghhf', '1', '0', '345', 'sfsdsddsfsf', 'eee3ew33', '1dwd', 'ddd2'];
console.log('array before sort');
console.log(array);
function simpleSort(array) {
let length = array.length;
let currentPos = 1;
while (currentPos < length) {
let pivot = 0;
do {
let currentValue = array[currentPos];
if (currentValue > array[pivot]) {

array.splice(currentPos, 1);
array.splice(pivot, 0, currentValue);
steps++;
}
steps2++;
pivot++;

}
while (currentPos > pivot);
currentPos++;
}
console.log(array);
console.log('steps = ' + steps);
console.log('steps2 = ' + steps2);
}
console.log('********************');
console.log('array after sort');
simpleSort(array);

console.log('********************');
console.log('array after sort with array.sort() and array.reverse() buit in functions');
array.sort();
console.log(array.reverse());

哪种类型的排序算法与这段代码最相似,其中的大 O 是什么

最佳答案

该算法与以下相同,因此其结构与O(n^2)排序算法类似。

function simpleSort(array) {
for (var currentPos = 1; currentPos < array.length; currentPos++) {
for (var pivot = 0; pivot < currentPos; pivot++) {
let currentValue = array[currentPos];
if (currentValue > array[pivot]) {
array.splice(currentPos, 1);
array.splice(pivot, 0, currentValue);
}
}
}
}

输入[6, 3, 5, 4, 1, 8, 6, 3],每次迭代后您将得到:

6   3 5 4 1 8 6 3
6 3 5 4 1 8 6 3
6 5 3 4 1 8 6 3
6 5 4 3 1 8 6 3
6 5 4 3 1 8 6 3
8 6 5 4 3 1 6 3
8 6 6 5 4 3 1 3
8 6 6 5 4 3 3 1

这表明左侧在每一步都进行排序,并且每次迭代的大小都会增加一。这与 insertion sort 相同.

每次迭代,if 条件只能为 true 一次,因为拼接后,currentValue 将等于左侧数组中的最小值并与较大值进行比较每一次。因此它的时间复杂度为O(n^2)

关于javascript - 哪种类型的排序算法与此代码最相似? (如果有的话)。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52949013/

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