×
Samples Blogs Make Payment About Us Reviews 4.9/5 Order Now

Create a Program to Create 6 Sorting Algorithms in C++ Assignment Solution

July 08, 2024
Emily Tan
Emily Tan
🇸🇬 Singapore
C++
Emily Tan is a seasoned software engineer with a Master’s degree in Computer Science from the National University of Singapore. With over 900 completed orders, she excels in delivering high-quality C++ programming solutions using Visual Studio. Emily's expertise includes debugging, algorithm design, and real-time systems, making her a sought-after expert for challenging assignments.
Key Topics
  • Instructions
  • Requirements and Specifications
Tip of the day
Familiarize yourself with OCaml's pattern matching; it simplifies handling recursive data structures like lists and trees, making your code concise and easier to debug.
News
In 2024, Girls Who Code introduced a Data Science + AI track in their free summer programs for high school students, fostering skills in cybersecurity and creative coding​

Instructions

Objective

Write a C++ assignment program to create 6 sorting algorithms.

Requirements and Specifications

program to create 6 sorting algorithms in C
program to create 6 sorting algorithms in C1

Source Code

BUBBLE SORT

class bubblesort { /* This class implements the Bubble Sort algorithm for an array of integers */ public: void sort(int arr[], int n) { for(int i = 0; i < n-1; i++) // iterate through the array { for(int j = 0; j < n-i-1; j++) // iterate from the beginning of the array to element n-i { if(arr[j] > arr[j+1]) // if the 2 consecutive elements are not sorted, then swap them swap(&arr[j], &arr[j+1]); } } } void swap(int *x, int *y) { //This function swaps the values in two pointer variables a and b int temp = *x; *x = *y; *y = temp; } };

HEAP SORT

class heapsort { /* This class implements the Heap Sort algorithm for an array of integers */ public: void swap(int *x, int *y) { //This function swaps the values in two pointer variables a and b int temp = *x; *x = *y; *y = temp; } void heapify_array(int arr[], int n, int i) { int largest = i; int l = 2*i+1; // left index int r = 2*i+2; // right index if(l arr[largest]) largest = l; if(r < n && arr[r] > arr[largest]) largest = r; if(largest != i)// if alrgest is not equal to the given index i, then swap { swap(&arr[i], &arr[largest]); heapify_array(arr, n, largest); } } void sort(int arr[], int n) { for(int i = n/2-1; i >= 0; i--) heapify_array(arr, n, i); for(int i = n-1; i >= 0; i--) { swap(&arr[0], &arr[i]); heapify_array(arr, i, 0); } } };

INSERTION SORT

class insertionsort { /* This class implements the Insertion Sort algorithm for an array of integers */ public: void sort(int arr[], int n) { int x; for(int i = 0; i < n; i++) // iterate through the array { x = arr[i]; // element at index i int j = i-1; // set the value of j to the previous element before i while(j>= 0 && arr[j] > x) // if element j is higher than x, then move j to the right { arr[j+1] = arr[j]; j = j - 1; } arr[j+1] = x; // insert x to the right of the last value of j } } };

MERGE SORT

class mergesort { /* This class implements the merge Sort algorithm for an array of integers */ public: void merge(int arr[], int l, int m, int r) { int size_left = m-l+1; int size_right = r-m; int left[size_left]; int right[size_right]; // get the elements at the left and insert them into 'left' for(int i = 0; i < size_left; i++) left[i] = arr[l+i]; // get the elements at the right and insert them into 'right' for(int i = 0; i < size_right; i++) right[i] = arr[m+i+1]; int i = 0; int j = 0; int k = l; while(i < size_left && j < size_right) { if(left[i] <= right[j]) { arr[k] = left[i]; i += 1; } else { arr[k] = right[j]; j+=1; } k+=1; } while(i { arr[k] = left[i]; i+=1; k+=1; } while(j < size_right) { arr[k] = right[j]; j+=1; k+=1; } } void sort(int arr[], int l, int r) { if(l< r) { int m = l + (r-l)/2; // get the middle index sort(arr, l, m); // sort left sort(arr, m+1, r); // sort right merge(arr, l, m, r); // merge } } };

QUICK SORT

class quicksort { /* This class implements the Quick Sort algorithm for an array of integers */ public: void sort(int arr[], int low, int high) { // This is the main funtion for the Quick Sort method if(low < high) { int part_i = partition(arr, low, high); // Sort elements at the left sort(arr, low, part_i-1); // Sort elements at the right sort(arr, part_i+1, high); } } void swap(int *x, int *y) { //This function swaps the values in two pointer variables a and b int temp = *x; *x = *y; *y = temp; } int partition(int arr[], int low, int high) { // This function takes last element in the arr as a pivot, and swaps it // to its correct position. Then, the smaller values (smaller than the pivot) are // placed at the left of the pivot, and greater elements are placed at the right int pivot = arr[high]; // last element in array int i = low -1; for(int j = low; j <= high - 1; j++) { if(arr[j] < pivot) // element is smaller than pivot but at the right of the pivot, so it must me moved to the left { i+= 1; swap(&arr[i], &arr[j]); } } swap(&arr[i+1], &arr[high]); return i+1; } };

SELECTION SORT

class selectionsort { /* This class implements the Selection Sort algorithm for an array of integers */ public: void sort(int arr[], int n) { int index; for(int i = 0; i < n-1; i++) // iterate through array { index = i; // save the current index into a variable for(int j = i+1; j < n; j++) // iterate from element i+1 to the end of the array { if(arr[j] < arr[index]) // if the element to the right of element i is smaller than the elemnt i, then it must me swaped to the left index = j; } swap(&arr[index], &arr[i]); // swap elements between index and i } } void swap(int *x, int *y) { //This function swaps the values in two pointer variables a and b int temp = *x; *x = *y; *y = temp; } };

Related Samples

At ProgrammingHomeworkHelp.com, we offer a comprehensive collection of related samples for C++ assignments. These samples serve as valuable resources for students seeking to understand complex C++ concepts and enhance their programming skills. Our website provides expert assistance for all C++ assignments, ensuring students receive accurate, well-structured solutions tailored to their academic requirements. Whether you're struggling with object-oriented programming, data structures, or algorithm implementation, our experienced team is here to support you.