Skip to content

Commit 3d78049

Browse files
authored
Merge pull request #7 from pro-js/basicMath
Search - 1
2 parents de7b573 + 214def6 commit 3d78049

1 file changed

Lines changed: 32 additions & 0 deletions

File tree

lib/search.js

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
/***
2+
* binary-Search
3+
* let array = [2,4,6,10,90,80]
4+
* console.log(binarySearch(array, 6)); // 2
5+
* console.log(binarySearch(array, 80)); // 4
6+
* console.log(binarySearch(array, 70)); // -1
7+
*/
8+
export function binarySearch (array, target) {
9+
array = array.sort(function(a, b){return a - b});
10+
let startIndex = 0, endIndex = array.length - 1;
11+
while(startIndex <= endIndex) {
12+
let middleIndex = Math.floor((startIndex + endIndex) / 2);
13+
if(target === array[middleIndex]) return middleIndex;
14+
else if(target > array[middleIndex]) startIndex = middleIndex + 1;
15+
else endIndex = middleIndex - 1;
16+
}
17+
return -1;
18+
}
19+
20+
/***
21+
* linear-Search
22+
* let array = [2,4,6,10,90,80]
23+
* console.log(linearSearch(array, 6)); // 2
24+
* console.log(linearSearch(array, 80)); // 5
25+
* console.log(linearSearch(array, 70)); // -1
26+
*/
27+
export function linearSearch (array, target) {
28+
for (let i = 0; i < array.length; i++) {
29+
if (target == array[i]) return i;
30+
}
31+
return -1;
32+
}

0 commit comments

Comments
 (0)