You are on page 1of 11

Name :- Debmalya Biswas

University Roll No :- 16500320009


Registration No :- 201650100310015
Assignment No :- 1
Stream :- Btech

Year :- 2nd Year

Semester :- 3rd Sem


A1.
#include <stdio.h>
void main()
{
int n;
printf("Enter the range of the array \n");
scanf("%d", &n);
int ar[n];
printf("Enter the element of the array \n");
for (int i = 0; i < n; i++)
{
scanf("%d",&ar[i]);
}
printf("Array traversed ");
printf("\n");
for (int i = 0; i < n; i++)
{
printf("%d ",ar[i]);
}
printf("\n");
printf("Array traversed in reverse order ");
printf("\n");
for (int i = n-1; i >= 0; i--)
{
printf("%d ",ar[i]);
}
printf("\n");
printf("Enter the location where you wish to delete element\n");
int position;
scanf("%d", &position);
int c;
for (c = position - 1; c < n - 1; c++)
ar[c] = ar[c+1];

printf("Resultant array:\n");

for (c = 0; c < n - 1; c++)


printf("%d\n", ar[c]);

}
A 2a. //linear search
#include<stdio.h>
void main(){
printf("Enter the range of the array ");
int n;
scanf("%d",&n);
int ar[n];//assume array to be sorted in an ascending order
for (int i = 0; i < n; i++)
{
scanf("%d",&ar[i]);
}
printf("Enter the item to be searched for ");
int x;
scanf("%d",&x);
for(int i=0;i<n;i++){
if(ar[i]==x){
printf("The item has been found at %d",i);
break;
}
else{
printf("The item not been found at %d\n",i);
}
}

}
A 2b. //binary search
#include <stdio.h>
int binsearch(int ar[],int x,int n){
int s=0;
int e=n;
while(s<=e){
int mid=s+(e-s)/2;
if(ar[mid]>x){
e=mid-1;

}
else if (ar[mid]<x)
{
s=mid+1;
}
else{
return mid;
}
}
return -1;
}
void main(){
printf("Enter the range of the array ");
int n;
scanf("%d",&n);
int ar[n];//assume array to be sorted in an ascending order
for (int i = 0; i < n; i++)
{
scanf("%d",&ar[i]);
}
printf("Enter the item to be searched for ");
int x;
scanf("%d",&x);
int res=binsearch(ar,x,n);
printf("%d",res);
}
A 3a. //insertion sort
#include<stdio.h>
void main(){
int n;
printf("Enter the range of the array \n");
scanf("%d", &n);
int ar[n];
printf("Enter the element of the array \n");
for (int i = 0; i < n; i++)
scanf("%d",&ar[i]);
int i, key, j;
for (i = 1; i < n; i++) {
key = ar[i];
j = i - 1;
while (j >= 0 && ar[j] > key) {
ar[j + 1] = ar[j];
j = j - 1;
}
ar[j + 1] = key;
}
printf("The sorted array is \n");
for (int i = 0; i < n ; i++)
{
printf("%d ",ar[i]);
}
}
A 3b. //bubble sort
#include<stdio.h>
void main(){
printf("Enter the range of the array ");
int n;
scanf("%d",&n);
int a[n];
for (int i = 0; i < n; i++)
{
scanf("%d",&a[i]);
}
int i, j, temp;
for(i = 0; i < n; i++)
{
for(j = i+1; j < n; j++)
{
if (a[j] < a[i])
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
printf("The sorted array is \n");
for (int i = 0; i < n; i++)
{
printf("%d ",a[i]);
}
}
A 3c. //selection sort
#include <stdio.h>
void swap(int *x, int *y)
{
int temp = *x;
*x = *y;
*y = temp;
}
void selectionSort(int arr[], int n)
{
for (int i = 0; i < n-1; i++)
{
int min_idx = i;
for (int j = i+1; j < n; j++)
if (arr[j] < arr[min_idx])
min_idx = j;
swap(&arr[min_idx], &arr[i]);
}
for (int i=0; i < n; i++)
printf("%d ", arr[i]);
}
void main()
{
int n;
printf("Enter the range of the array \n");
scanf("%d", &n);
int ar[n];
printf("Enter the element of the array \n");
for (int i = 0; i < n; i++)
scanf("%d",&ar[i]);
selectionSort(ar, n);
}
A 3d. //merge sort
#include <stdio.h>
void merge(int a[], int beg, int mid, int end)
{
int i, j, k;
int n1 = mid - beg + 1;
int n2 = end - mid;
int LeftArray[n1], RightArray[n2];
for (int i = 0; i < n1; i++)
LeftArray[i] = a[beg + i];
for (int j = 0; j < n2; j++)
RightArray[j] = a[mid + 1 + j];
i = 0;
j = 0;
k = beg;
while (i < n1 && j < n2)
{
if(LeftArray[i] <= RightArray[j])
{
a[k] = LeftArray[i];
i++;
}
else
{
a[k] = RightArray[j];
j++;
}
k++;
}
while (i<n1)
{
a[k] = LeftArray[i];
i++;
k++;
}
while (j<n2)
{
a[k] = RightArray[j];
j++;
k++;
}
}
void mergeSort(int a[], int beg, int end)
{
if (beg < end)
{
int mid = (beg + end) / 2;
mergeSort(a, beg, mid);
mergeSort(a, mid + 1, end);
merge(a, beg, mid, end);
}
}
void printArray(int a[], int n)
{
int i;
for (i = 0; i < n; i++)
printf("%d ", a[i]);
printf("\n");
}
void main()
{
int n;
printf("Enter the range of the array \n");
scanf("%d", &n);
int a[n];
printf("Enter the element of the array \n");
for (int i = 0; i < n; i++)
scanf("%d",&a[i]);
mergeSort(a, 0, n - 1);
printf("After sorting array elements are - \n");
printArray(a, n);
}
A 3e. //quick sort
#include <stdio.h>
int partition (int a[], int start, int end)
{
int pivot = a[end];
int i = (start - 1);
for (int j = start; j <= end - 1; j++)
{
if (a[j] < pivot)
{
i++;
int t = a[i];
a[i] = a[j];
a[j] = t;
}
}
int t = a[i+1];
a[i+1] = a[end];
a[end] = t;
return (i + 1);
}
void quick(int a[], int start, int end)
{
if (start < end)
{
int p = partition(a, start, end);
quick(a, start, p - 1);
quick(a, p + 1, end);
}
}
void printArr(int a[], int n)
{
int i;
for (i = 0; i < n; i++)
printf("%d ", a[i]);
}
int main()
{
int n;
printf("Enter the range of the array \n");
scanf("%d",&n);
int a[n];
printf("Enter the elements of the array \n");
for (int i = 0; i < n; i++)
{
scanf("%d",&a[i]);
}
quick(a, 0, n - 1);
printf("After sorting array elements are - \n");
printArr(a, n);
}

You might also like