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

need help with this java program Directions: Implement code for selection, bubbl

ID: 3811103 • Letter: N

Question

need help with this java program

Directions:

Implement code for selection, bubble, and insertion sort.

For each algorithm, count the number of times it loops (you can make the sort methods return an integer with this count).

Call each sorting algorithms on the following types of arrays:

1. an array of 10 integers already sorted into ascending order

2. an array of 10 integers in the opposite order

3. an array of 10 random integers between 0 and 99

4. an array of 100 integers already sorted into ascending order

5. an array of 100 integers in the opposite order

6. an array of 100 random integers between 0 and 99

need this program written in Java

Explanation / Answer

import java.util.Random;

public class Sort {

   public static void main(String[] args) {
       int[] array = getSorted(10, true);
System.out.println("Insertion Sort : ");
System.out.println("Case 1 :");
System.out.print("Array : ");
print(array);
int loopCount = insertionSort(array);
System.out.print("Sorted: ");
print(array);
System.out.println("Loop Count : "+loopCount+" ");
  
array = getSorted(10, false);
System.out.println("Case 2 :");
System.out.print("Array : ");
print(array);
loopCount = insertionSort(array);
System.out.print("Sorted: ");
print(array);
System.out.println("Loop Count : "+loopCount+" ");
  
array = getRandom(10);
System.out.println("Case 3 :");
System.out.print("Array : ");
print(array);
loopCount = insertionSort(array);
System.out.print("Sorted: ");
print(array);
System.out.println("Loop Count : "+loopCount+" ");
//===============================================================
array = getSorted(10, true);
System.out.println("bubbleSort Sort : ");
System.out.println("Case 1 :");
System.out.print("Array : ");
print(array);
loopCount = bubbleSort(array);
System.out.print("Sorted: ");
print(array);
System.out.println("Loop Count : "+loopCount+" ");
  
array = getSorted(10, false);
System.out.println("Case 2 :");
System.out.print("Array : ");
print(array);
loopCount = bubbleSort(array);
System.out.print("Sorted: ");
print(array);
System.out.println("Loop Count : "+loopCount+" ");
  
array = getRandom(10);
System.out.println("Case 3 :");
System.out.print("Array : ");
print(array);
loopCount = bubbleSort(array);
System.out.print("Sorted: ");
print(array);
System.out.println("Loop Count : "+loopCount+" ");
  
//===============================================================
array = getSorted(10, true);
System.out.println("selectionSort Sort : ");
System.out.println("Case 1 :");
System.out.print("Array : ");
print(array);
loopCount = selectionSort(array);
System.out.print("Sorted: ");
print(array);
System.out.println("Loop Count : "+loopCount+" ");
  
array = getSorted(10, false);
System.out.println("Case 2 :");
System.out.print("Array : ");
print(array);
loopCount = selectionSort(array);
System.out.print("Sorted: ");
print(array);
System.out.println("Loop Count : "+loopCount+" ");
  
array = getRandom(10);
System.out.println("Case 3 :");
System.out.print("Array : ");
print(array);
loopCount = selectionSort(array);
System.out.print("Sorted: ");
print(array);
System.out.println("Loop Count : "+loopCount+" ");
   }
   public static int insertionSort(int array[]) {
       int loopCount = 0;
int n = array.length;
for (int j = 1; j < n; j++) {
int key = array[j];
int i = j-1;
while ( (i > -1) && ( array [i] > key ) ) {
array [i+1] = array [i];
i--;
loopCount++;
}
array[i+1] = key;
}
return loopCount;
   }
     
   public static int bubbleSort(int[] arr) {
       int n = arr.length;
       int loopCount = 0;
       int temp = 0;
       for(int i=0; i < n; i++){
           for(int j=1; j < (n-i); j++){
               if(arr[j-1] > arr[j]){
                   temp = arr[j-1];
                   arr[j-1] = arr[j];
                   arr[j] = temp;
               }
               loopCount++;
           }
       }
       return loopCount;
   }
  
   public static int selectionSort(int[] arr){
       int loopCount = 0;
for (int i = 0; i < arr.length - 1; i++)
{
int index = i;
for (int j = i + 1; j < arr.length; j++){
if (arr[j] < arr[index]){
index = j;
}
loopCount++;
}
int smallerNumber = arr[index];   
arr[index] = arr[i];
arr[i] = smallerNumber;
}
return loopCount;
}
  
   public static int[] getSorted(int size,boolean accending){
       int[] array = new int[size];
       if(accending){
           for(int i=1; i<= size; i++){
               array[i-1] = i;
           }
       }
       else{
           for(int i=size; i > 0; i--){
               array[size-i] = i;
           }
       }
       return array;
   }
   public static int[] getRandom(int size){
       Random rand = new Random();
       int[] array = new int[size];
       for(int i=1; i<= size; i++){
           array[i-1] = Math.abs(rand.nextInt())%100;
       }
       return array;
   }
   public static void print(int[] array){
      
       for(int i=0; i< array.length; i++){
           System.out.print(" "+array[i]);
       }
       System.out.println();
   }
}