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