Professional Documents
Culture Documents
Searching and Sorting
Searching and Sorting
#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);
}