Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- using namespace std;
- void heapify(int arr[],int i,int n){
- int largest=i;
- if((2*i+1)<n && arr[2*i+1]>arr[largest]){
- largest=2*i+1;
- }
- if((2*i+2)<n && arr[2*i+2]>arr[largest]){
- largest=2*i+2;
- }
- if(largest!=i){
- swap(arr[largest],arr[i]);
- heapify(arr,largest,n);
- }
- }
- void heapsort(int arr[],int n){
- for(int i=n/2;i>=0;i--){
- heapify(arr,i,n);
- }
- for(int i=n-1;i>=0;i--){
- swap(arr[0],arr[i]);
- heapify(arr,0,i);
- }
- }
- int pivot(int arr[],int lo,int hi){
- int pivot=lo;
- lo++;
- while(lo<=hi){
- while(lo<=hi && arr[lo]<=arr[pivot])lo++;
- while(hi>=lo && arr[hi]>arr[pivot])hi--;
- if(lo<=hi)swap(arr[lo],arr[hi]);
- }
- swap(arr[pivot],arr[hi]);
- return hi;
- }
- void quicksort(int arr[],int lo,int hi){
- if(lo<hi){
- int idx=pivot(arr,lo,hi);
- quicksort(arr,lo,idx-1);
- quicksort(arr,idx+1,hi);
- }
- }
- void merge(int arr[],int lo,int mid,int hi){
- int sortarray[hi-lo+1];
- int i=lo,j=mid+1,k=0;
- while(i<=mid && j<=hi){
- if(arr[i]<=arr[j])sortarray[k++]=arr[i++];
- else sortarray[k++]=arr[j++];
- }
- while(i<=mid)sortarray[k++]=arr[i++];
- while(j<=hi)sortarray[k++]=arr[j++];
- for(i=0;i<k;i++){
- arr[lo+i]=sortarray[i];
- }
- }
- void mergesort(int arr[],int lo,int hi){
- if(lo<hi){
- int mid=(lo+hi)/2;
- mergesort(arr,lo,mid);
- mergesort(arr,mid+1,hi);
- merge(arr,lo,mid,hi);
- }
- }
- void bubblesort(int arr[],int n){
- for(int i=0;i<n-1;i++){
- for(int j=1;j<n;j++){
- if(arr[j]<arr[j-1])swap(arr[j-1],arr[j]);
- }
- }
- }
- void selectionsort(int arr[],int n){
- for(int i=0;i<n-1;i++){
- int minval=i;
- for(int j=i+1;j<n;j++){
- if(arr[j]<arr[minval])minval=j;
- }
- swap(arr[minval],arr[i]);
- }
- }
- void insertionsort(int arr[],int n){
- for(int i=1;i<n;i++){
- int val=arr[i],j=i-1;
- while(j>=0 && arr[j]>val){
- arr[j+1]=arr[j];
- j--;
- }
- arr[j+1]=val;
- }
- }
- int main(){
- int n;
- cin>>n;
- int arr[n];
- for(int i=0;i<n;i++)cin>>arr[i];
- heapsort(arr,n);
- quicksort(arr,0,n-1);
- mergesort(arr,0,n-1);
- bubblesort(arr,n);
- selectionsort(arr,n);
- insertionsort(arr,n);
- for(int i=0;i<n;i++)cout<<arr[i]<<" ";
- }
Advertisement
Add Comment
Please, Sign In to add comment