Implementation and Time analysis of sorting algorithms. Bubble sort, Selection sort, Insertion sort, Merge sort and Quicksort
1. Bubble sort
#includeusing 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:
4. Insertion sort
When you upload remaining ??
ReplyDeletePlease upload remaining practicals ..!
ReplyDelete