Searching Sorting Notes Handwritten
Searching Sorting Notes Handwritten
Scanned by CamScanner
Scanned by CamScanner
Scanned by CamScanner
Scanned by CamScanner
Scanned by CamScanner
Scanned by CamScanner
Scanned by CamScanner
Scanned by CamScanner
Scanned by CamScanner
Scanned by CamScanner
Scanned by CamScanner
Scanned by CamScanner
Scanned by CamScanner
Scanned by CamScanner
Scanned by CamScanner
Scanned by CamScanner
Scanned by CamScanner
Scanned by CamScanner
C Programs for searching and sorting
//program for linear search
#include<stdio.h>
#define N 5
int main()
{
int arr[N];
int item,i,loc =-1;
for(i=0;i<N;i++)
{
if(arr[i]==item)
{
loc = i;
printf("\nItem found at location = %d\n",loc);
break;
}
}
if(loc==-1)
{
printf("\nItem not found\n");
}
return(0);
}
//program for binary search
#include<stdio.h>
#define N 10
int main()
{
int arr[N];
int item,loc =-1;
int m,i, f = 0, l = N-1;
if(arr[m]==item)
{
loc = m;
printf("\nItem found at location = %d\n",loc);
break;
}
else if(item<arr[m])
{
l = m - 1;
}
else
{
f = m + 1;
}
}
if(loc==-1)
{
printf("\nItem not found\n");
}
return(0);
}
//program for bubble sort
#include<stdio.h>
#define N 5
int main()
{
int arr[N];
int i,j,temp;
for(i=0;i<N-1;i++)
{
for(j=0;j<N-i-1;j++)
{
if(arr[j]>arr[j+1])
{
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
return(0);
}
//program for selection sort
#include<stdio.h>
#define N 5
int main()
{
int arr[N];
int i,j,temp,min;
for(i=0;i<N-1;i++)
{
min = i;
for(j=i+1;j<N;j++)
{
if(arr[j]<arr[min])
{
min = j;
}
}
if(min!=i)
{
temp = arr[i];
arr[i] = arr[min]; //swapping minimum element with element at index i
arr[min] = temp;
}
}
return(0);
}
//program for insertion sort
#include<stdio.h>
#define N 5
int main()
{
int arr[N];
int i,j,key;
for(i=1;i<N;i++)
{
key = arr[i];
j = i-1;
while(j>=0 && key<arr[j])
{
arr[j+1]=arr[j];
j=j-1;
}
arr[j+1]=key;
}
return(0);
}
//program for counting sort
#include<stdio.h>
#define N 10
int main()
{
int arr[N];
int k,i;
int b[N]; //b is output array
k = arr[0];
for(i = 1; i<N; i++) //finding maximum value k = range = [0...k] = max value among the given array numbers
{
if(arr[i]>k)
{
k = arr[i];
}
}
//for turbo compiler create dynamically like int * count = (int *) malloc((k+1)*sizeof(int));
for(i=0;i<N;i++)
{
count[arr[i]]++; //count array now contains frequencies of all elements
}
for(i=1;i<=k;i++)
{
count[i] = count[i] + count[i-1]; //update count array// cumulitive frequencies
}
for(i=N-1;i>=0;i--) //create an output array
{
b[--count[arr[i]]] = arr[i];
}
return(0);
}