我正在比較bubblesort的實現,並在「while」循環中看到了一個帶for循環的替代方案。已知泡泡排序是o(n^2)。如果在while循環中使用for循環,它仍然如此嗎?我想了一會兒,一時間複雜if語句是相同的(即線性):for循環內的一個while循環 - o(n)平方?
Array.prototype.bubblesort = function() {
var done = false;
while (! done) {
done = true;
for (var i = 1; i < this.length; i++) {
if (this[i - 1] > this[i]) {
done = false;
var tmp = this[i - 1];
this[i - 1] = this[i];
this[i] = tmp;
}
}
}
return this;
}
使用'while'而不是'for'不影響漸近複雜度。 – Oriol
循環是一個循環。實施並不重要。 –