Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Add a method bubbleSort to the class ArraySorter, that performs a bubble sort of

ID: 3809426 • Letter: A

Question

Add a method bubbleSort to the class ArraySorter, that performs a bubble
sort of an array. The bubble sort algorithm examines all adjacent pairs
of elements in the array from the beginning to the end and interchanges
(swaps) any two elements that are out of order. Each interchange makes the
array more sorted than it was, until it is entirely sorted. The algorithm in
pseudocode follows:
Bubble sort algorithm to sort an array a
Repeat the following until the array a is sorted:
for (index = 0; index <a.length - 1; index++)
if (a[index] > a[index + 1])
Interchange the values of a[index] and a[index + 1]

Please add a method insertionSort to the class ArraySort and follow the algorium above carefully. I will give the code for ArraySort class below. Also please use IDE to finish this question with comments and make sure it is working. In the result, it should show multiple arrays that show how the inertionSort process going from beginng to final result step by step .  Also do not erase or build a whole new class, the question need to add an method inside the given class ArraySort.

here is the ArraySorter class

public class ArraySorter
{
/**
    Precondition: Every element in anArray has a value.
    Action: Sorts the array into ascending order.
*/
public static void selectionSort(int[] anArray)
{
  for (int index = 0; index < anArray.length - 1; index++)
  {   // Place the correct value in anArray[index]
   int indexOfNextSmallest = getIndexOfSmallest(index, anArray);
   interchange(index, indexOfNextSmallest, anArray);
   //Assertion:anArray[0] <= anArray[1]< =...<= anArray[index]
   //and these are the smallest of the original array elements.
   //The remaining positions contain the rest of the original
   //array elements.
  }
}
/**
    Returns the index of the smallest value in the portion of the
    array that begins at the element whose index is startIndex and
    ends at the last element.
*/
private static int getIndexOfSmallest(int startIndex, int[] a)
{
  int min = a[startIndex];  
  int indexOfMin = startIndex;
  for (int index = startIndex + 1; index < a.length; index++)
  {
   if (a[index] < min)
   {
    min = a[index];
    indexOfMin = index;
    //min is smallest of a[startIndex] through a[index]
   }
  }
  return indexOfMin;
}
/**
    Precondition: i and j are valid indices for the array a.
    Postcondition: Values of a[i] and a[j] have been interchanged.
*/
private static void interchange(int i, int j, int[] a)
{
  int temp = a[i];
  a[i] = a[j];
  a[j] = temp; //original value of a[i]
}
}

Explanation / Answer

Hi, Please find my implementation.

Please let me know in case of any issue.

public class ArraySorter

{

   /**

Precondition: Every element in anArray has a value.

Action: Sorts the array into ascending order.

   */

   public static void selectionSort(int[] anArray)

   {

       for (int index = 0; index < anArray.length - 1; index++)

       { // Place the correct value in anArray[index]

           int indexOfNextSmallest = getIndexOfSmallest(index, anArray);

           interchange(index, indexOfNextSmallest, anArray);

           //Assertion:anArray[0] <= anArray[1]< =...<= anArray[index]

           //and these are the smallest of the original array elements.

           //The remaining positions contain the rest of the original

           //array elements.

       }

   }

   /**

Returns the index of the smallest value in the portion of the

array that begins at the element whose index is startIndex and

ends at the last element.

   */

   private static int getIndexOfSmallest(int startIndex, int[] a)

   {

       int min = a[startIndex];

       int indexOfMin = startIndex;

       for (int index = startIndex + 1; index < a.length; index++)

       {

           if (a[index] < min)

           {

               min = a[index];

               indexOfMin = index;

               //min is smallest of a[startIndex] through a[index]

           }

       }

       return indexOfMin;

   }

   /**

Precondition: i and j are valid indices for the array a.

Postcondition: Values of a[i] and a[j] have been interchanged.

   */

   private static void interchange(int i, int j, int[] a)

   {

       int temp = a[i];

       a[i] = a[j];

       a[j] = temp; //original value of a[i]

   }

   /*Function to sort array using insertion sort*/

   void insertionSort(int arr[])

   {

       int n = arr.length;

       for (int i=1; i<n; ++i)

       {

           int key = arr[i];

           int j = i-1;

           /* Move elements of arr[0..i-1], that are

   greater than key, to one position ahead

   of their current position */

           while (j>=0 && arr[j] > key)

           {

               arr[j+1] = arr[j];

               j = j-1;

           }

           arr[j+1] = key;

       }

   }

   // A function to implement bubble sort

   void bubbleSort(int arr[], int n)

   {

       int i, j;

       for (i = 0; i < n-1; i++)

           // Last i elements are already in place

           for (j = 0; j < n-i-1; j++)

               if (arr[j] > arr[j+1]){

                   int temp = arr[j];

                   arr[j] = arr[j+1];

                   arr[j+1] = temp;

               }

   }

}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote