ADA | Practical-1 | Implementation and Time analysis of sorting algorithms.

 Implementation and Time analysis of sorting algorithms. Bubble sort, Selection sort, Insertion sort, Merge sort and Quicksort



1. Bubble sort
#include 
using namespace std;
void BubbleSort (int arr[], int n)
{
    int i, j;
    for (i = 0; i < n; ++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];
                    }
                }
        }
}

int main()
{
    int n, i;
    cout<<"\nEnter the number of data element to be sorted: ";
    cin>>n;
    int arr[n];
    for(i = 0; i < n; i++)
    {
        cout<<"Enter element "<>arr[i];
    }
    BubbleSort(arr, n);
    cout<<"\nSorted Data ";
    for (i = 0; i < n; i++)
    cout<<"->"<<arr[i];
    return 0;
}

2. Selection sort
#include<iostream>
using namespace std;
void swapping(int &a, int &b)
{
    int temp;
    temp = a;
    a = b;
    b = temp;
}
void display(int *array, int size) {
    for(int i = 0; i<size; i++)
    cout << array[i] << " ";
    cout << endl;
}
void selectionSort(int *array, int size) {
    int i, j, imin;
    for(i = 0; i<size-1; i++) 
    {
    imin = i;
    for(j = i+1; j<size; j++)
    {
        if(array[j] < array[imin])
         {   imin = j;
             swap(array[i], array[imin]); }
    }
}
int main() 
{
    int n;
    cout << "Enter the number of elements: ";
    cin >> n;
    int arr[n];
    cout << "Enter elements:" << endl;
    for(int i = 0; i<n; i++) 
    {
        cin >> arr[i];
    }
    cout << "Array before Sorting: ";
    display(arr, n);
    selectionSort(arr, n);
    cout << "Array after Sorting: ";
    display(arr, n);
}

Output :

3. Merge Sort

#include<iostream>
using namespace std;
void swapping(int &a, int &b) 
{
    int temp;
    temp = a;
    a = b;
    b = temp;
}
void display(int *array, int size)
 {
    for(int i = 0; i<size; i++)
    cout << array[i] << " ";
    cout << endl;
}
void merge(int *array, int l, int m, int r) 
{
    int i, j, k, nl, nr;
    nl = m-l+1; nr = r-m;
    int larr[nl], rarr[nr];
    for(i = 0; i<nl; i++)
    {
        array[i] = array[l+i];
        for(j = 0; j<nr; j++)
        {
        array[j] = array[m+1+j];
        i = 0; j = 0; k = l;
        while(i < nl && j<nr) 
        {
            if(larr[i] <= rarr[j])
             {
                array[k] = larr[i];
                i++;
            }
           else{
                array[k] = rarr[j];
                j++;
                }
           k++;
        }
        while(i<nl) {
            array[k] = larr[i];
            i++; k++;
        }
        while(j<nr) {
            array[k] = rarr[j];
            j++; k++;
        }
}
void mergeSort(int *array, int l, int r) 
{
    int m;
    if(l < r) {
    int m = l+(r-l)/2;
    mergeSort(array, l, m);
    mergeSort(array, m+1, r);
    merge(array, l, m, r);
    }
}

int main()
 {
    int n;
    cout << "Enter the number of elements: ";
    cin >> n;
    int arr[n];
    cout << "Enter elements:" << endl;
    for(int i = 0; i<n; i++) {
    cin >> arr[i];
    cout << "Array before Sorting: ";
    display(arr, n);
    mergeSort(arr, 0, n-1);
    cout << "Array after Sorting: ";
    display(arr, n);
}
Output:
merge sort

4. Insertion sort

// C++ program for insertion sort 
#include <bits/stdc++.h>
using namespace std;

void insertionSort(int arr[], int n) 
    int i, key, j; 
    for (i = 1; i < n; i++)
    
        key = arr[i]; 
        j = i - 1; 
  
        while (j >= 0 && arr[j] > key)
        
            arr[j + 1] = arr[j]; 
            j = j - 1; 
        
        arr[j + 1] = key; 
    
  
// A utility function to print an array of size n 
void printArray(int arr[], int n) 
    int i; 
    for (i = 0; i < n; i++) 
        cout << arr[i] << " "
    cout << endl;
  
/* Driver code */
int main() 
    int arr[] = { 12, 11, 13, 5, 6 }; 
    int n = sizeof(arr) / sizeof(arr[0]); 
  
    insertionSort(arr, n); 
    printArray(arr, n); 
  
    return 0; 

output:





Go to Home Page : --


index page : https://gtu-practical.blogspot.com/2020/08/analysis-and-design-of-algorithms-index.html

Practical 2: x



Comments

Post a Comment