折中算法
前提:數組是有序的
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
</body>
<script type="text/javascript">
var resultArray = [5,3,10,7,6];
//標記的思想
function sortNum(a, b){
return a-b;
}
resultArray = resultArray.sort(sortNum);
console.log(resultArray);
var min = 0;
var max = resultArray.length - 1;
var index = -1;//用來記錄最終找到的結果
for (var i = 0;i < resultArray.length / 2;i++) {
//需要查找的下標
var middle = parseInt((min + max) / 2);
//console.log(middle);
if (resultArray[middle] == 7) {
index = middle;
console.log(index);
break;
}else if(resultArray[middle] < 7){
min = middle + 1;
}else{
max = middle;
}
}
if (index != -1) {
console.log("7這個元素在數組的下標為:" + index);
}
</script>
</html>
轉載于:https://www.cnblogs.com/luckyXcc/p/5780996.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
- 上一篇: Vijos1448题解---线段树+括号
- 下一篇: hdu 3401(单调队列优化dp)