二分法:
二分查找,又称为折半查找。
注意:二分法查找的数组必须是有序的。
/* 获取元素88在数组中第一次出现的索引位置 如果数组元素中存在88,则直接返回88在数组中的索引位置即可。 如果数组元素中没有88,那么直接返回-1即可。 */ var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; // 保存需要查找的元素值 var value = 4; // 定义一个变量,用于查找的过程中保存(min+max)/2 var mid; // 定义两个变量,用于保存查找元素在数组中存在的索引范围 var min = 0,max = arr.length - 1; // 因为不明确查找次数,索引我们使用死循环 while (true) { // 更新mid的值,min+max的一半 mid = parseInt((min + max) / 2); // 判断arr[mid]和value值的大小 if (arr[mid] > num) { min = mid - 1; } else if (arr[mid] < num) { max = mid + 1; } else {// arr[mid] == value document.write(mid); break; } //判断查找的元素在数组中不存在的情况 if (max < min) { document.write(-1); break; } }