Uploaded by 223006812

Algorithm CSE

advertisement
Algorithm CSE 222
SEMESTER 5
Bubble sort (Swap function)
Bubble sort (without third variable)
Bubble sort (Third variable)
Selection sort
Binary search (Recursive method)
Binary Search (Iterative method)
Linear search
Insertion Sort
Merge sort
Fractional Knapsack
3
4
5
6
7
9
11
12
13
15
Bubble sort (Swap function)
#include<iostream>
using namespace std ;
main()
{
int i , j , temp ,n ;
cout<<"Input the array size: " ;
cin>>n ;
int arr[n];
for(i=0 ; i<n ; i++)
{
cin>>arr[i];
}
for(i=0 ; i<(n-1) ; i++)
{
for(j=0 ; j<(n-i-1) ; j ++)
{
if(arr[j]>arr[j+1])
{
arr[j]= arr[j]* arr[j+1] ;
arr[j+1] = arr[j]/arr[j+1];
arr[j]= arr[j]/arr[j+1];
}
}
}
for(i=0 ; i<n ; i++)
{
cout<<arr[i]<<" ";
}
}
Bubble sort (without third variable)
#include<iostream>
using namespace std ;
main()
{
int i , j , temp ,n ;
cout<<"Input the array size: " ;
cin>>n ;
int arr[n];
for(i=0 ; i<n ; i++)
{
cin>>arr[i];
}
for(i=0 ; i<(n-1) ; i++)
{
for(j=0 ; j<(n-i-1) ; j ++)
{
if(arr[j]>arr[j+1])
{
arr[j]= arr[j]+ arr[j+1] ;
arr[j+1] = arr[j]-arr[j+1];
arr[j]= arr[j]-arr[j+1];
}
}
}
for(i=0 ; i<n ; i++)
{
cout<<arr[i]<<" ";
}
}
Bubble sort (Third variable)
#include<iostream>
using namespace std ;
main()
{
int i , j , temp ,n ;
cout<<"Input the array size: " ;
cin>>n ;
int arr[n];
for(i=0 ; i<n ; i++)
{
cin>>arr[i];
}
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 ;
}
}
}
for(i=0 ; i<n ; i++)
{
cout<<arr[i]<<" ";
}
}
Selection sort
#include<iostream>
using namespace std ;
main()
{
int n ;
cout<<"Input size of array: ";
cin>>n ;
int arr[n];
cout<<"Input array elements: "<<"\n" ;
for(int i = 0 ; i<n ; i++)
{
cin>>arr[i];
}
int mini ;
int i , j ;
for(i=0 ; i<n-1 ; i++)
{
mini= i;
for(j=i+1 ; j<n ; j++)
{
if(arr[mini]>arr[j])
{
mini= j;
}
}
swap(arr[i],arr[mini]);
}
int k ;
for(int k = 0 ; k<n ; k++)
{
cout<<arr[k]<<" ";
}
}
Binary search (Recursive method)
#include<iostream>
using namespace std ;
int binarySearch(int arr[],int l , int r , int x);
main()
{
int n ;
cout<<"Input size of array:" ;
cin>>n ;
int arr[n];
int l=0 ;
int r=n ;
cout<<"Input array elements" ;
for(int i=0 ; i<n ; i++)
{
cin>>arr[i];
}
int element ;
cout<<"Input element to search:" ;
cin>>element ;
int found = binarySearch(arr,l,r, element);
if(found==-1)
{
cout<<"Element not found" ;
}
else
{
cout<<"Element found at "<<found ;
}
}
int binarySearch(int arr[],int l , int r , int x)
{
if(l>r)
{
return -1 ;
}
else
{
int mid = (l+r)/2 ;
if(x==arr[mid])
{
return mid ;
}
else if(x>arr[mid])
{
l=mid+1 ;
binarySearch(arr,l,r,x);
}
else if(x<arr[mid])
{
r=mid-1 ;
binarySearch(arr,l,r,x);
}
}
}
Binary Search (Iterative method)
#include<iostream>
using namespace std ;
main()
{
int n ;
cout<<"Input size: " ;
cin>>n ;
int arr[n] ;
cout<<"Input array elements: " ;
for(int i =0 ; i<n ; i++)
{
cin>>arr[i];
}
int x;
cout<<"Input element to search: " ;
cin>>x ;
int l = 0 ;
int r = n ;
int flag = 0 ;
while(flag!= -1)
{
int mid = (l+r)/2 ;
if(l>r)
{
cout<<"Element not found" ;
flag = -1 ;
}
else {
if(x==arr[mid])
{
cout<<"Element found at "<<mid ;
break ;
}
else if(x>arr[mid])
{
l=mid+1 ;
}
else if(x<arr[mid])
{
r=mid-1 ;
}
}
}
}
Linear search
#include<iostream>
using namespace std ;
main()
{
int n ;
cout<<"Input size: " ;
cin>>n ;
int arr[n] ;
cout<<"Input array elements:" ;
for(int i=0 ; i<n ; i++)
{
cin>>arr[i];
}
int x ;
cout<<"Input element to search: " ;
cin>>x ;
int i ;
for( i = 0 ; i<n ; i++)
{
if(x==arr[i])
{
break ;
}
}
cout<<"The element is found at "<<i ;
}
Insertion Sort
#include<iostream>
using namespace std ;
main()
{
int n ;
cout<<"Input array size:" ;
cin>>n ;
int arr[n];
cout<<"Input array elements:" ;
for(int i=0 ; i<n ; i++)
{
cin>>arr[i];
}
int i , j ;
for(i=1 ; i<n ; i++)
{
int key = arr[i];
j= i-1 ;
while(j>=0 && arr[j]>key)
{
arr[j+1]=arr[j];
j= j-1 ;
}
arr[j+1]=key ;
}
int k ;
for(int k = 0 ; k<n ; k++)
{
cout<<arr[k]<<" ";
}
}
Merge sort
#include<iostream>
using namespace std ;
void Merge(int arr[],int l , int r);
void mergeSort(int arr[],int l , int m , int r);
void mergeSort(int arr[],int l , int m , int r)
{
int n1 = m-l+1 ;
int n2 = r-m;
int L[n1],R[n2];
for(int i=0 ; i<n1 ; i++)
{
L[i]=arr[l+i];
}
for(int j=0 ; j<n2 ; j++)
{
R[j]=arr[m+1+j];
}
int i= 0 ;
int j =0 ;
int k =l ;
while(i<n1 && j<n2)
{
if(L[i]<=R[j])
{
arr[k]= L[i] ;
i++ ;
}
else
{
arr[k]= R[j] ;
j++ ;
}
k++ ;
}
while(i<n1)
{
arr[k]=L[i];
i++;
k++ ;
}
while(j<n2)
{
arr[k]=R[j];
j++;
k++ ;
}
}
void Merge(int arr[],int l , int r)
{
if(l<r)
{
int m = (l+r) /2 ;
Merge(arr,l,m);
Merge(arr,m+1 ,r);
mergeSort(arr,l,m,r);
}
}
main()
{
int n ;
cout<<"Input size:" ;
cin>>n ;
int arr[n];
cout<<"Input array elements:"<<"\n" ;
for(int i = 0 ; i<n ; i++)
{
cin>>arr[i];
}
Merge(arr,0 , n-1);
int k ;
for(int k = 0 ; k<n ; k++)
{
cout<<arr[k]<<" ";
}
}
Fractional Knapsack
#include<iostream>
using namespace std ;
void fractional_knap(int n , float w[] , float p[] , int capacity) ;
int main()
{
int n ;
cout<<"Input no.of items" ;
cin>>n ;
int i , j ;
float w[n] , p[n] , r[n] ;
cout<<"Input weight and profits of each items:" ;
for(i=0 ; i<n ; i++)
{
cin>>w[i] >>p[i] ;
}
for(i=0 ; i<n ; i++)
{
r[i] = p[i]/w[i];
}
for(i=0 ; i<n ; i++)
{
for(j=0 ; j<(n-i-1) ; j++)
{
if(r[j]<r[j+1])
{
swap(r[j],r[j+1]);
swap(p[j],p[j+1]);
swap(w[j],w[j+1]);
}
}
}
/* for(i=0 ; i<n ; i++)
{
cout<<w[i]<<" "<<p[i] ;
}*/
int capacity ;
cout<<"Input capacity : " ;
cin>>capacity ;
fractional_knap(n , w , p , capacity);
}
void fractional_knap(int n , float w[] , float p[] , int capacity)
{
int u = capacity ;
float x[n] ,tp =0;
int i ;
for(i=0 ; i<n ; i++)
{
x[i] = 0.0 ;
}
for(i=0; i<n ; i++)
{
if(w[i]>u){
break ;
}
else
{
x[i]= 1.0 ;
tp = tp + p[i];
u = u - w[i];
}
}
x[i] = u/w[i];
tp = tp + (p[i]* x[i]) ;
for(i=0 ; i<n ; i++)
{
cout<<x[i]<<" " ;
}
cout<<tp ;
}
Download