Skip to content

Commit e36f317

Browse files
committed
Algorithms
1 parent 1e06e47 commit e36f317

8 files changed

+262
-0
lines changed

ALGORITHMS/Searching/BinarySearch.cpp

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
#include <bits/stdc++.h>
2+
3+
int binarysearch(int arr[], int n, int target)
4+
{
5+
int low = 0, high = n;
6+
while (low <= high)
7+
{
8+
int mid = (low + high) / 2;
9+
if (arr[mid] == target)
10+
{
11+
return mid;
12+
}
13+
else if (arr[mid] > target)
14+
{
15+
high = mid - 1;
16+
}
17+
else
18+
{
19+
low = mid + 1;
20+
}
21+
}
22+
return -1;
23+
}
24+
25+
int main()
26+
{
27+
int target = 5, n = 10;
28+
int arr[n] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
29+
std::cout << binarysearch(arr, n, target);
30+
return 0;
31+
}

ALGORITHMS/Searching/LinearSearch.cpp

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
#include <bits/stdc++.h>
2+
3+
int linearsearch(int arr[], int n, int target)
4+
{
5+
for (int i = 0; i < n; ++i)
6+
{
7+
if (arr[i] == target)
8+
{
9+
return i;
10+
}
11+
}
12+
return -1;
13+
}
14+
15+
int main()
16+
{
17+
int n = 10, target = 23;
18+
int arr[n] = {23, 15, 89, 17, 56, 852, 753, 96521, 546, 0};
19+
std::cout << linearsearch(arr, n, target);
20+
return 0;
21+
}

ALGORITHMS/Sorting/BubbleSort.cpp

+52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
#include <bits/stdc++.h>
2+
3+
void bubblesort(std::vector<int> &arr)
4+
{
5+
int n = arr.size();
6+
bool swapped = false;
7+
for (int i = 0; i < n; ++i)
8+
{
9+
swapped = false;
10+
for (int j = 0; j < n - i - 1; ++j)
11+
{
12+
if (arr[j] > arr[j + 1])
13+
{
14+
std::swap(arr[j], arr[j + 1]);
15+
swapped = true;
16+
}
17+
}
18+
if (swapped = false)
19+
{
20+
break;
21+
}
22+
}
23+
}
24+
25+
void printArray(std::vector<int> arr)
26+
{
27+
for (int i = 0; i < arr.size(); ++i)
28+
{
29+
std::cout << arr[i] << " ";
30+
}
31+
std::cout << "\n";
32+
}
33+
34+
int main()
35+
{
36+
int t;
37+
std::cin >> t;
38+
while (t--)
39+
{
40+
int n, ele;
41+
std::cin >> n;
42+
std::vector<int> arr(n, 0);
43+
for (int i = 0; i < n; ++i)
44+
{
45+
std::cin >> ele;
46+
arr[i] = ele;
47+
}
48+
bubblesort(arr);
49+
printArray(arr);
50+
}
51+
return 0;
52+
}
82.6 KB
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
#include <bits/stdc++.h>
2+
3+
//INPUT:
4+
// 2
5+
// 5
6+
// 1 1 2 2 0
7+
// 0 1 2
8+
// 10
9+
// 9 9 5 5 6 5 9 5 6 9
10+
// 5 6 9
11+
12+
void DNF(std::vector<int> &arr, int f, int s, int t)
13+
{
14+
int low = 0, mid = 0, high = arr.size() - 1;
15+
while (mid <= high)
16+
{
17+
if (arr[mid] == f)
18+
{
19+
std::swap(arr[mid], arr[low]);
20+
low++;
21+
mid++;
22+
}
23+
else if (arr[mid] == s)
24+
{
25+
mid++;
26+
}
27+
else
28+
{
29+
std::swap(arr[mid], arr[high]);
30+
high--;
31+
}
32+
}
33+
}
34+
35+
void printArray(std::vector<int> arr)
36+
{
37+
for (int i = 0; i < arr.size(); ++i)
38+
{
39+
std::cout << arr[i] << " ";
40+
}
41+
std::cout << "\n";
42+
}
43+
44+
int main()
45+
{
46+
int t;
47+
std::cin >> t;
48+
while (t--)
49+
{
50+
int n, ele, f, s, th;
51+
std::cin >> n;
52+
std::vector<int> arr(n, 0);
53+
for (int i = 0; i < n; ++i)
54+
{
55+
std::cin >> ele;
56+
arr[i] = ele;
57+
}
58+
std::cin >> f >> s >> th;
59+
DNF(arr, f, s, th);
60+
printArray(arr);
61+
}
62+
return 0;
63+
}

ALGORITHMS/Sorting/InsertionSort.cpp

+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
#include <bits/stdc++.h>
2+
3+
void insertionsort(std::vector<int> &arr)
4+
{
5+
for (int i = 1; i < arr.size(); ++i)
6+
{
7+
int key = arr[i], j = i - 1;
8+
while (j >= 0 && arr[j] > key)
9+
{
10+
arr[j + 1] = arr[j];
11+
j = j - 1;
12+
}
13+
arr[j + 1] = key;
14+
}
15+
}
16+
17+
void printArray(std::vector<int> arr)
18+
{
19+
for (int i = 0; i < arr.size(); ++i)
20+
{
21+
std::cout << arr[i] << " ";
22+
}
23+
std::cout << "\n";
24+
}
25+
26+
int main()
27+
{
28+
int t;
29+
std::cin >> t;
30+
while (t--)
31+
{
32+
int n, ele;
33+
std::cin >> n;
34+
std::vector<int> arr(n, 0);
35+
for (int i = 0; i < n; ++i)
36+
{
37+
std::cin >> ele;
38+
arr[i] = ele;
39+
}
40+
insertionsort(arr);
41+
printArray(arr);
42+
}
43+
return 0;
44+
}

ALGORITHMS/Sorting/SelectionSort.cpp

+47
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
#include <bits/stdc++.h>
2+
3+
void selectionsort(std::vector<int> &arr)
4+
{
5+
int min = 0;
6+
for (int i = 0; i < arr.size() - 1; ++i)
7+
{
8+
min = i;
9+
for (int j = i + 1; j < arr.size(); ++j)
10+
{
11+
if (arr[min] > arr[j])
12+
{
13+
min = j;
14+
}
15+
}
16+
std::swap(arr[min], arr[i]);
17+
}
18+
}
19+
20+
void printArray(std::vector<int> arr)
21+
{
22+
for (int i = 0; i < arr.size(); ++i)
23+
{
24+
std::cout << arr[i] << " ";
25+
}
26+
std::cout << "\n";
27+
}
28+
29+
int main()
30+
{
31+
int t;
32+
std::cin >> t;
33+
while (t--)
34+
{
35+
int n, ele;
36+
std::cin >> n;
37+
std::vector<int> arr(n, 0);
38+
for (int i = 0; i < n; ++i)
39+
{
40+
std::cin >> ele;
41+
arr[i] = ele;
42+
}
43+
selectionsort(arr);
44+
printArray(arr);
45+
}
46+
return 0;
47+
}

README.md

+4
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,7 @@ And if the problem you want to serach is form codechef you have to enter the pro
2020
- [Hackerrank](https://www.hackerrank.com/dashboard)
2121
- [InterViewBit](https://www.interviewbit.com/practice/)
2222
- [Leet Code](https://leetcode.com/problemset/all/)
23+
24+
## ALGORITHMS
25+
26+
Algorithms folder contain various algorithms in c++

0 commit comments

Comments
 (0)