function newsort(array) {
if (array.length <= 1) {
alert(array);
} else {
mid = array.length/2;
left = [];
right = [];
for (i = 0; i < mid; i++) {
left.push(array[i]);
}
for (i = mid; i <= array.length; i++) {
right.push(array[i]);
}
}
result = merge(left, right);
alert(result);
};
function merge(left, right) {
alert(left);
}
function merge(arr1, arr2) {
var arr3 = [];
while (arr1.length > 0 && arr2.length > 0) {
if (arr1[0] <= arr2[0]) {
arr3.push(arr1.shift());
} else {
arr3.push(arr2.shift());
}
}
while (arr1.length > 0) {
arr3.push(arr1.shift());
}
while (arr2.length > 0) {
arr3.push(arr2.shift());
}
// time = timeSortingAlgorithm(arr3, newsort(array));
// return time;
return arr3;
};
function makeRandomArray(size) {
var result = Array();
while (size > 0) {
result.push(Math.floor(Math.random() * 100000));
--size;
}
return result;
}
function timeSortingAlgorithm(array, sortingAlgorithm) {
var startTime = new Date();
newsort(array);
var endTime = new Date();
return endTime.getTime() - startTime.getTime();
}
var array = makeRandomArray(6);
newsort(array);
//timeSortingAlgorithm(array,newsort);
當我運行這段代碼時,它的想法是將函數合併並將數組的兩半發送給newsort--然後將它們合併在一起,排序。該數組由makeRandomArray函數創建。但是,我無法弄清楚如何結合timeSortingAlgorithm(array,sortingAlgorithm)函數,就像我稱之爲 - 沒有任何反應。目前我的電話已被註釋掉,但是當我把它們拿出來時 - 根本沒有輸出。如果我完全不把這個功能放在這個過程中 - 一切正常。Javascript函數的功能
任何人都能指出我正確的方向嗎?
是否有在控制檯中的任何錯誤? – forgivenson
不,但我正在使用aptana ......所以就是這樣。 – user3371104
aptana!==瀏覽器控制檯 – epascarello