You are on page 1of 5

Name: Vansh Chopra

SID: 20105077
Branch: ECE

Binary Search
#include <iostream>
#define li long long int
using namespace std;

li binarySearch(li *input, li n, li target){


li start = 0;
li end = n - 1;

while(start <= end){


li mid = (start + end)/2;
if(input[mid] == target) {
return mid;
} else if(target < input[mid]) {
end = mid - 1;
} else if(target > input[mid]) {
start = mid + 1;
}
} return -1;
}

signed main(){
li n, target;
cin >> n;
li *input = new li[n];
for(li i = 0; i < n; ++i){
cin >> input[i];
}
cin >> target;
cout << binarySearch(input, n, target) << endl;

delete [] input;
return 0;
}

OUTPUT:
LINEAR SEARCH
#include <iostream>
#define li long long int
using namespace std;

li linearSearch(li *arr, li n, li x)
{
for (li i = 0; i < n; i++)
if (arr[i] == x)
return i;
return -1;
}

signed main(){
li n,val;
cin >> n;
li *arr = new li[n];
for (li i = 0; i < n; i++){
cin >> arr[i];
}
cin >> val;
cout << linearSearch(arr, n, val) << endl;
return 0;
}
OUTPUT

OUICK SORT

#include<iostream>
#define li long long int
using namespace std;
void swappingFuntion(li* a, li* b){
li t = *a;
*a = *b;
*b = t;
}

li partition (li arr[], li low, li high){


li pivot = arr[high];
li i = (low - 1);
for (li j = low; j <= high - 1; j++)
{

if (arr[j] < pivot)


{
i++;
swappingFuntion(&arr[i], &arr[j]);
}
}
swappingFuntion(&arr[i + 1], &arr[high]);
return (i + 1);
}

void VC_QuickSort_helper(li arr[], li low, li high){


if(low >= high){
return;
}
li pi = partition(arr, low, high);
VC_QuickSort_helper(arr, low, pi - 1);
VC_QuickSort_helper(arr, pi + 1, high);
}
void quickSort_VC(li input[], li size) {
VC_QuickSort_helper(input,0 , size-1);
}

signed main(){
li n;
cin >> n;
li input[n];
for(li i = 0; i < n; i++) {
cin >> input[i];
}
quickSort_VC(input, n);
for(li i = 0; i < n; i++){
cout << input[i] << " ";
}
}
OUTPUT::

MERGE SORT:
#include <iostream>
#define li long long int
using namespace std;

void merge(li arr[],li l, li m ,li r){


li n1 = m - l +1;
li n2 = r - m;
li L[n1], R[n2];
for(li i = 0;i < n1;i++){
L[i] = arr[l+i];
}
for(li i = 0;i < n2;i++){
R[i] = arr[m+1+i];
}
li i , j , k;
i = 0;
j = 0;
k = l;
while(i < n1 && j < n2){
if(L[i] <= R[j]){
arr[k++] = L[i++];
}else{
arr[k++] = R[j++];
}
}
while(i < n1){
arr[k++] = L[i++];
}
while(j < n2){
arr[k++] = R[j++];
}
}
void merge_sort_VC_helper(li arr[], li l, li r){
if(l >= r){
return;
}
li m = (l+r-1)/2;
merge_sort_VC_helper(arr,l,m);
merge_sort_VC_helper(arr,m+1,r);
merge(arr,l,m,r);
}

void VC_MergeSort(li arr[], li size){


merge_sort_VC_helper(arr,0,size-1);

signed main() {
li n;
cin >> n;
li* arr = new li[n];
for(li i=0; i < n; i++){
cin >> arr[i];
}
VC_MergeSort(arr, n);
for(li i = 0; i < n; i++){
cout << arr[i] << " ";
}
}
OUTPUT:

You might also like