今天莫名其妙想起这样一个问题,随机一个长度确定的数组,获取这个数组中的最大值,在这里我使用的是两个do-while的循环。
预期的效果已实现,但是其中一个问题还没解决,循环过程中每次比较的都是两个数字,我觉得循环的次数可能过多,可不可以用二分法的方式进行比较,减少循环次数,优化性能,这个问题有待商榷,如果有更好的方式,欢迎指教
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>获得一个随机数组</title>
</head>
<body>
<script>
// 1、 从1-100之间随机获取十个数组成一个数组,要求不能有重复 2、比较取得这个数组中的最大值
var arr = [],
count = 10,
i = 0;
//随机一个数组
do {
var rdm = parseInt(Math.random() * 100) + 1;
if(arr.indexOf(rdm) == -1){
arr.push(rdm);
i++;
}
}while(i < count);
console.log(arr);
//取得这个随机数组中的最大值
function maxArray(arr){
do {
if(arr[0] < arr[arr.length -1]){
arr.shift();
}else{
arr.pop();
}
}while(arr.length != 1);
console.log(arr[0]);
}
maxArray(arr);
</script>
</body>
</html>