Javascript 如何分析包含由外部函数或方法生成的隐藏循环的算法的复杂性?
首先,如果我的标题不够简洁,我想表示歉意,但我的观点是,如果你看一下下面的代码,这是选择排序算法,显然有人会分析它的复杂性Javascript 如何分析包含由外部函数或方法生成的隐藏循环的算法的复杂性?,javascript,algorithm,performance,data-structures,Javascript,Algorithm,Performance,Data Structures,首先,如果我的标题不够简洁,我想表示歉意,但我的观点是,如果你看一下下面的代码,这是选择排序算法,显然有人会分析它的复杂性 module.exports = function (arr) { var temp; for (var i = 0; i < arr.length; i++) { var iTh = i; for (var j = i+1; j < arr.length; j++) { if (arr[j] < arr
module.exports = function (arr) {
var temp;
for (var i = 0; i < arr.length; i++) {
var iTh = i;
for (var j = i+1; j < arr.length; j++) {
if (arr[j] < arr[iTh]) {
iTh = j;
}
}
temp = arr[i];
arr[i] = arr[iTh];
arr[iTh] = temp;
}
return arr;
}
第二次倒车
exports.reverse1 = function (str) {
if (str == undefined || str.length) {
return 0;
}
let collector = [];
for (var i = str.length; i >= 0; i--) {
collector.push(str.charAt(i));
}
return collector.join("");
}
exports.reverse2 = function (str) {
if (str == undefined || str === "") {
return 0;
}
return str.split("").reverse().join("");
}
如果你真的喜欢,可以使用:使用不同长度的字符串对每个方法进行基准测试,然后绘制运行时与长度的关系图,并查看整体形状以估计复杂性。你可能对函数的功能感兴趣感谢@gyre提供新信息,除了ChromeDevTools或一般的浏览器之外,还有什么工具可以推荐用于收集运行时?试试看。非常高质量的性能度量库。