Skip to content

Commit 679b819

Browse files
committed
Adding Linear & Binary Search source code and practice questions
1 parent d5f5be4 commit 679b819

File tree

3 files changed

+131
-2
lines changed

3 files changed

+131
-2
lines changed

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,5 @@
2727
- [Array](https://github.com/Vishal-raj-1/DSA-In-JS-With-Vishal/blob/main/Array/README.md)
2828
- [Polyfill of Map, Filter & Reduce](https://github.com/Vishal-raj-1/DSA-In-JS-With-Vishal/blob/main/Array/Polyfill.md)
2929
- [String](https://github.com/Vishal-raj-1/DSA-In-JS-With-Vishal/blob/main/String/README.md)
30-
- [Recursion](https://github.com/Vishal-raj-1/DSA-In-JS-With-Vishal/blob/main/Recursion/README.md)
30+
- [Recursion](https://github.com/Vishal-raj-1/DSA-In-JS-With-Vishal/blob/main/Recursion/README.md)
31+
- [Linear & Binary Search](https://github.com/Vishal-raj-1/DSA-In-JS-With-Vishal/blob/main/Searching%20Algorithms/README.md)

Recursion/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ function fibo(n){
4545
console.log(fibo(5));
4646
```
4747

48-
### Practice Questions (solve using recursion):
48+
## Practice Questions (solve using recursion):
4949

5050
- Check whether a string is palindrome or not
5151
- Create pow(x, n) function which returns x^n

Searching Algorthims/README.md

Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,128 @@
1+
# Searching in JavaScript
2+
3+
<p align="center">
4+
<a href="https://youtu.be/7aLKVYpYugQ">
5+
<img src="https://img.youtube.com/vi/7aLKVYpYugQ/0.jpg" alt="Searching Algorithms in JavaScript" />
6+
</a>
7+
</p>
8+
9+
### Linear Search in JavaScript
10+
11+
```javascript
12+
const arr = [1, 2, 6, 9, 0, -5];
13+
14+
const linearSearch = (arr, target) => {
15+
for (let i = 0; i < arr.length; i++) {
16+
if (arr[i] === target) {
17+
return i;
18+
}
19+
}
20+
return -1;
21+
}
22+
23+
console.log(linearSearch(arr, 8));
24+
console.log(arr.includes(9));
25+
console.log(arr.indexOf(9));
26+
console.log(arr.find((num) => num > 0));
27+
console.log(arr.findIndex((num) => num < 0));
28+
```
29+
30+
### Binary Search In JavaScript
31+
32+
```javascript
33+
const BinarySearch = (arr, target) => {
34+
let start = 0, end = arr.length - 1;
35+
while (start <= end) {
36+
let mid = Math.floor((start + end) / 2);
37+
38+
if (arr[mid] === target) {
39+
return mid;
40+
}
41+
42+
else if (arr[mid] > target) {
43+
end = mid - 1;
44+
}
45+
46+
else {
47+
start = mid + 1;
48+
}
49+
}
50+
51+
return -1;
52+
}
53+
54+
console.log(BinarySearch([1, 4, 6, 9, 12, 15], 8));
55+
```
56+
57+
### Binary Search using Recursion
58+
59+
```javascript
60+
const BinarySearchRecur = (arr, target) => {
61+
return BinarySearchUtil(arr, target, 0, arr.length);
62+
}
63+
64+
const BinarySearchUtil = (arr, target, start, end) => {
65+
if (start > end)
66+
return -1;
67+
68+
let mid = Math.floor((start + end) / 2);
69+
70+
if (arr[mid] === target) {
71+
return mid;
72+
}
73+
74+
else if (arr[mid] > target) {
75+
return BinarySearchUtil(arr, target, start, mid - 1);
76+
}
77+
78+
else {
79+
return BinarySearchUtil(arr, target, mid + 1, end);
80+
}
81+
}
82+
```
83+
84+
### Find floor and ceil value of X in an array
85+
86+
```javascript
87+
const floorCeil = (arr, target) => {
88+
let start = 0, end = arr.length;
89+
let floor = -1, ceil = -1;
90+
while(start <= end){
91+
let mid = Math.floor((start + end)/2);
92+
93+
if(arr[mid] === target){
94+
floor = mid;
95+
ceil = mid;
96+
return [ceil, mid]
97+
}
98+
99+
else if(arr[mid] > target){
100+
ceil = mid;
101+
end = mid - 1;
102+
}
103+
104+
else {
105+
floor = mid;
106+
start = mid + 1;
107+
}
108+
}
109+
110+
return [ceil, floor]
111+
}
112+
113+
## Practice Questions
114+
115+
### Level 1
116+
- [Sqrt(x)](https://leetcode.com/problems/sqrtx/)
117+
- [First Bad Version](https://leetcode.com/problems/first-bad-version)
118+
- [Find the Index of the First Occurrence in a String](https://leetcode.com/problems/find-the-index-of-the-first-occurrence-in-a-string/)
119+
- [Binary Search](https://leetcode.com/problems/binary-search)
120+
- [Search Insert Position](https://leetcode.com/problems/search-insert-position)
121+
- [Find Minimum in Rotated Sorted Array](https://leetcode.com/problems/find-minimum-in-rotated-sorted-array)
122+
123+
### Level 2
124+
- [Find First and Last Position of Element in Sorted Array](https://leetcode.com/problems/find-first-and-last-position-of-element-in-sorted-array)
125+
- [Single Element in a Sorted Array](https://leetcode.com/problems/single-element-in-a-sorted-array/)
126+
- [Search a 2D Matrix](https://leetcode.com/problems/search-a-2d-matrix/)
127+
- [Find Peak Element](https://leetcode.com/problems/find-peak-element)
128+
- [Search in Rotated Sorted Array](https://leetcode.com/problems/search-in-rotated-sorted-array)

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy