我想製作bogosort功能。我想在每次輸出爲false
時調用bogo函數。我試過用do {bogo function block} while(sorted===false)
循環,但只循環一次(arr
更改爲空數組)。最終目標是調用函數f.e bogo([1,5,3,2]),它應該輸出排序數組(在變量shuffled
中)。javascript中的Bogosort函數循環
function bogo(arr) {
function shuffle(arr) {
var shuffled = [];
var rand;
while (arr.length !== 0) {
rand = Math.floor(Math.random() * arr.length)
shuffled.push(arr.splice(rand, 1)[0]);
}
return shuffled;
}
function sorted(shuffle) {
for (var i = 0; i < shuffle.length - 1; i++) {
if (shuffle[i] <= shuffle[i + 1]) {
continue;
} else {
return false;
}
}
return true
}
return sorted(shuffle(arr));
}
console.log(bogo([1, 2]));
你'sorted'功能不改變任何東西,數組如何進行排序?另外,'sorted'返回true或false ...不是(永遠不會)排序的數組 –
yes是排序的目的是輸出布爾值。在這個假設下,while函數應該把當前的變量和顯示出來,但這只是我的理論。 – Felnyr
你的代碼中唯一'while'在'shuffle' ...這是運行和完成的時間'sorted'被稱爲 –