@@ -38,50 +38,24 @@ function binarySearchRecursive(array, search, offset = 0) {
3838 * @param  {string|number } search value to search for 
3939 */ 
4040function  binarySearchIterative ( array ,  search )  { 
41-   // console.log('binarySearchIterative', {array, search}); 
4241  let  start  =  0 ; 
43-   let  end  =  array . length ; 
44-   const  half  =  ( )  =>  parseInt ( ( end  -  start )  /  2 ,  10 )   +   start ; 
42+   let  end  =  array . length   -   1 ; 
43+   const  half  =  ( )  =>  start   +   parseInt ( ( end  -  start )  /  2 ,  10 ) ; 
4544
46-   while  ( end   -   start  >   0 )  { 
45+   while  ( start  <=   end )  { 
4746    const  currentIndex  =  half ( ) ; 
4847    const  current  =  array [ currentIndex ] ; 
4948
50-     if  ( current  ===  search )  { 
51-        return   currentIndex ; 
52-     }   if  ( search  >  current )  { 
53-       start  =  currentIndex ; 
49+     if  ( current  ===  search )  return   currentIndex ; 
50+ 
51+     if  ( search  >  current )  { 
52+       start  =  currentIndex   +   1 ; 
5453    }  else  if  ( search  <  current )  { 
55-       end  =  currentIndex ; 
54+       end  =  currentIndex   -   1 ; 
5655    } 
5756  } 
5857
5958  return  - 1 ; 
6059} 
6160
62- // const binarySearch = binarySearchRecursive; 
63- const  binarySearch  =  binarySearchIterative ; 
64- 
65- // function test() { 
66- //  const directory = ['Adrian', 'Bella', 'Charlotte', 'Daniel', 
67- //  'Emma', 'Hanna', 'Isabella', 'Jayden', 'Kaylee', 'Luke', 'Mia', 
68- //  'Nora', 'Olivia', 'Paisley', 'Riley', 'Thomas', 'Wyatt', 'Xander', 'Zoe']; 
69- // 
70- //   const assert = require('assert'); 
71- //   assert.equal(binarySearch([], 'not found'), -1); 
72- //   assert.equal(binarySearch([1], 2), -1); 
73- //   assert.equal(binarySearch([1], 1), 0); 
74- //   assert.equal(binarySearch([1, 2, 3], 1), 0); 
75- //   assert.equal(binarySearch([1, 2, 3], 2), 1); 
76- //   assert.equal(binarySearch([1, 2, 3], 3), 2); 
77- //   assert.equal(binarySearch([1, 2, 3], 31), -1); 
78- //   assert.equal(binarySearch(directory, 'Adrian'), 0); 
79- //   assert.equal(binarySearch(directory, 'Hanna'), 5); 
80- //   assert.equal(binarySearch(directory, 'Zoe'), 18); 
81- //   assert.equal(binarySearch(directory, 'not found'), -1); 
82- // } 
83- 
84- // test(); 
85- 
86- 
87- module . exports  =  {  binarySearch,  binarySearchIterative,  binarySearchRecursive } ; 
61+ module . exports  =  {  binarySearchIterative,  binarySearchRecursive } ; 
0 commit comments