Skip to content

Commit 9d6a326

Browse files
committed
change binary_search to find random element
1 parent a9b0177 commit 9d6a326

File tree

2 files changed

+47
-47
lines changed

2 files changed

+47
-47
lines changed

algorithm/search/binary_search/iterative/code.js

+23-23
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,42 @@
11
function BinarySearch(array, element) { // array = sorted array, element = element to be found,
22

3-
var minIndex = 0;
4-
var maxIndex = array.length - 1;
5-
var currentIndex;
6-
var testElement;
3+
var minIndex = 0;
4+
var maxIndex = array.length - 1;
5+
var currentIndex;
6+
var testElement;
77

8-
while (minIndex <= maxIndex) {
8+
while (minIndex <= maxIndex) {
99

10-
middleIndex = Math.floor((minIndex + maxIndex) / 2);
11-
testElement = array[middleIndex];
10+
middleIndex = Math.floor((minIndex + maxIndex) / 2);
11+
testElement = array[middleIndex];
1212

13-
tracer._print('Searching at index: ' + middleIndex);
14-
tracer._notify(middleIndex);
13+
tracer._print('Searching at index: ' + middleIndex);
14+
tracer._notify(middleIndex);
1515

16-
if (testElement < element) {
16+
if (testElement < element) {
1717

18-
tracer._print('Going right.');
19-
minIndex = middleIndex + 1;
18+
tracer._print('Going right.');
19+
minIndex = middleIndex + 1;
2020

21-
} else if (testElement > element) {
21+
} else if (testElement > element) {
2222

23-
tracer._print('Going left.');
24-
maxIndex = middleIndex - 1;
23+
tracer._print('Going left.');
24+
maxIndex = middleIndex - 1;
2525

26-
} else {
26+
} else {
2727

28-
tracer._print(element + ' is found at position ' + middleIndex + '!');
29-
tracer._select(middleIndex);
28+
tracer._print(element + ' is found at position ' + middleIndex + '!');
29+
tracer._select(middleIndex);
3030

31-
return middleIndex;
31+
return middleIndex;
32+
}
3233
}
33-
}
3434

35-
tracer._print(element + ' is not found!');
36-
return -1;
35+
tracer._print(element + ' is not found!');
36+
return -1;
3737
}
3838

39-
var element = D[0];
39+
var element = D[Math.random() * D.length | 0];
4040

4141
tracer._sleep(1000);
4242
tracer._pace(1000);

algorithm/search/binary_search/recursive/code.js

+24-24
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,36 @@
11
function BinarySearch(array, element, minIndex, maxIndex) { // array = sorted array, element = element to be found, minIndex = minIndex index, maxIndex = maxIndex index
2-
if (minIndex > maxIndex) {
3-
tracer._print(element + ' is not found!');
4-
return -1;
5-
}
2+
if (minIndex > maxIndex) {
3+
tracer._print(element + ' is not found!');
4+
return -1;
5+
}
66

7-
var middleIndex = Math.floor((minIndex + maxIndex) / 2);
8-
var testElement = array[middleIndex];
7+
var middleIndex = Math.floor((minIndex + maxIndex) / 2);
8+
var testElement = array[middleIndex];
99

10-
tracer._print('Searching at index: ' + middleIndex);
11-
tracer._notify(middleIndex);
10+
tracer._print('Searching at index: ' + middleIndex);
11+
tracer._notify(middleIndex);
1212

13-
if (testElement < element) {
14-
tracer._print('Going right.');
15-
return BinarySearch(array, element, middleIndex + 1, maxIndex);
16-
}
13+
if (testElement < element) {
14+
tracer._print('Going right.');
15+
return BinarySearch(array, element, middleIndex + 1, maxIndex);
16+
}
1717

18-
if (testElement > element) {
19-
tracer._print('Going left.');
20-
return BinarySearch(array, element, minIndex, middleIndex - 1);
21-
}
18+
if (testElement > element) {
19+
tracer._print('Going left.');
20+
return BinarySearch(array, element, minIndex, middleIndex - 1);
21+
}
2222

23-
if (testElement === element) {
24-
tracer._print(element + ' is found at position ' + middleIndex + '!');
25-
tracer._select(middleIndex);
26-
return middleIndex;
27-
}
23+
if (testElement === element) {
24+
tracer._print(element + ' is found at position ' + middleIndex + '!');
25+
tracer._select(middleIndex);
26+
return middleIndex;
27+
}
2828

29-
tracer._print(element + ' is not found!');
30-
return -1;
29+
tracer._print(element + ' is not found!');
30+
return -1;
3131
}
3232

33-
var element = D[0];
33+
var element = D[Math.random() * D.length | 0];
3434

3535
tracer._sleep(1000);
3636
tracer._pace(1000);

0 commit comments

Comments
 (0)