sanin203

Sorting

Oct 20th, 2021
643
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include<stdio.h>
  2. #include<conio.h>
  3. #include<stdlib.h>
  4. #include<time.h>
  5.  
  6.  
  7. //Bubble Sort Function
  8. void bubble_sort(int Array[], int n){
  9.     int i,j,temp;
  10.     for(i=0; i<n; i++){
  11.         for(j=0; j<n-i; j++){
  12.             if(Array[j] > Array[j+1]){
  13.                 temp = Array[j];
  14.                 Array[j] = Array[j+1];
  15.                 Array[j+1] = temp;
  16.             }
  17.         }
  18.     }
  19. }
  20.  
  21. //Selecton Sort Function
  22. void selection_sort(int Array[], int n){
  23.     int i,j,temp,small_index;
  24.     for(i=0; i<n; i++){
  25.         small_index = i;
  26.         for(j=i+1; j<n; j++){
  27.             if(Array[j] < Array[small_index]){
  28.                 small_index = j;
  29.             }
  30.         }
  31.         temp = Array[i];
  32.         Array[i]= Array[small_index];
  33.         Array[small_index] = temp;
  34.     }
  35. }
  36.  
  37. //Insertion Sort function
  38. void insertion_sort(int Array[], int n){
  39.     int i,j,temp;
  40.     for(i=0; i<n; i++){
  41.         j = i;
  42.         while(j > 0 && Array[j-1] > Array[j]){
  43.             temp = Array[j];
  44.             Array[j] = Array[j-1];
  45.             Array[j-1] = temp;
  46.             j--;
  47.         }
  48.     }
  49. }
  50.  
  51. //Merge Sort function
  52. void merge(int Array[], int first, int middle, int last){  
  53.     int temp[first+last+1];            
  54.     int i,j,k;
  55.    
  56.     i = first;        
  57.     j = middle+1;      
  58.     k = first;         /
  59.  
  60.     while(i<=middle && j<=last){
  61.         if(Array[i] <= Array[j]){
  62.             temp[k] = Array[i];    
  63.             i++;
  64.             k++;
  65.         }
  66.         else{
  67.             temp[k] = Array[j];    
  68.             j++;
  69.             k++;
  70.         }
  71.     }
  72.     while(i<=middle){
  73.         temp[k] = Array[i];  
  74.         i++;
  75.         k++;
  76.     }
  77.     while(j<=last){
  78.         temp[k] = Array[j];  
  79.         k++;
  80.     }
  81.     for(int a=first; a<=last; a++){
  82.         Array[a] = temp[a];
  83.     }
  84.  
  85. }
  86.  
  87. void merge_sort(int Array[], int first, int last){        
  88.     if(first < last){
  89.         int middle = (first+last) / 2;      
  90.         merge_sort(Array,first,middle);    
  91.         merge_sort(Array,middle+1,last);    
  92.  
  93.         merge(Array,first,middle,last);    
  94.     }
  95. }
  96.  
  97. //Quick Sort
  98. int partition(int Array[], int start, int end){
  99.     int pivot, i, j, temp;
  100.     pivot = Array[end];          
  101.     for(i=start-1,j=start; j<end; j++){                    
  102.         if(Array[j] < pivot){
  103.             i++;
  104.             temp = Array[j];
  105.             Array[j] = Array[i];
  106.             Array[i] = temp;              
  107.         }
  108.     }
  109.     temp = Array[end];
  110.     Array[end] = Array[i+1];
  111.     Array[i+1] = temp;                  
  112.                                          
  113.     return i+1;                          
  114. }
  115.  
  116. void quick_sort(int Array[], int start, int end){
  117.     if(start>=end){
  118.         return;        
  119.     }
  120.     int p = partition(Array, start, end);                
  121.     quick_sort(Array, start, p-1);                        
  122.     quick_sort(Array, p+1, end);                          
  123. }
  124.  
  125. //Main Function
  126. int main(){
  127.     int A[10000],size, i, key;
  128.    
  129.     //Input Array Part
  130.     srand(time(0));
  131.  
  132.     printf("\nEnter the size of the array : "); scanf("%d",&size);
  133.  
  134.     for(i=0; i<size; i++){
  135.         A[i] = rand()%150;
  136.     }
  137.  
  138.     printf("\nArray elements are : \n");
  139.     for(i=0; i<size; i++){
  140.         printf("%d\t", A[i]);
  141.     }
  142.    
  143.     /*
  144.     //call any of these function to sort the array
  145.     //bubble_sort(A,size);//calling the bubble sort function
  146.  
  147.     //selection_sort(A,size);//calling the selection sort function
  148.  
  149.     //insertion_sort(A,size);//calling the insertion sort function
  150.  
  151.     //merge_sort(A,0,size-1);
  152.  
  153.     //quick_sort(A, 0, size-1);
  154.  
  155.     printf("\nAfter sorting the array is : \n");
  156.     for(i=0; i<size; i++){
  157.         printf("%d\t", A[i]);
  158.     }
  159.     */
  160.    
  161.     printf("\n");
  162.     getch();
  163. }
RAW Paste Data