Using Selection Sort Generate 100000 positive numbers betwee

Using Selection Sort, Generate 100000 positive numbers between (0,150) Search the position of the first “58” in the array Count how many “58” in the array Sort the array Repeat step 3 on the sorted array and compute the time cost difference between the time from step 3 only, and time from step 4 and 5 together. Run your program three times and calculate the time: The time to generate 100000# The time to search the element 58 (step 2) The time to count the 58’s (step 3) The time to sort the array (step 4) Step 5 ( difference of 4 5 and step 3)

Solution

PROGRAM CODE:

package selectionsort;

import java.util.Random;

public class SelectionSort {

  

   //integer array to hold the numbers

   static int numberArray[] = new int[100000];

  

   //Selection sort method

   public static void sort( ){

int N = numberArray.length;

int i, j, pos, temp;

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

{

pos = i;

for (j = i+1; j < N; j++)

{

if (numberArray[j] < numberArray[pos])

{

pos = j;

}

}

/* Swap arr[i] and arr[pos] */

temp = numberArray[i];

numberArray[i] = numberArray[pos];

numberArray[pos]= temp;

}

}

  

   //main function

   public static void main(String args[])

   {

       Random random = new Random();

       long step3TD, step4_5TD;

       //Step 1 - generating 100000 numbers

       long startTime = System.currentTimeMillis();

       for(int i=0; i<100000; i++)

       {

           numberArray[i] = random.nextInt(150 + 1);

       }

       long endTime = System.currentTimeMillis();

       System.out.println(\"Time taken to generate 100000 numbers: \" + (endTime - startTime) + \" ms\");

      

       //Step 2 - searching for the element 58

       startTime = System.currentTimeMillis();

       for(int i=0; i<numberArray.length; i++)

       {

           if(numberArray[i] == 58)

               break;

       }

       endTime = System.currentTimeMillis();

       System.out.println(\"Time to find the element (58): \" + (endTime - startTime) + \" ms\");

      

       //Step 3 - count the number of elements that are 58

       startTime = System.currentTimeMillis();

       int counter = 0;

       for(int i=0; i<numberArray.length; i++)

       {

           if(numberArray[i] == 58)

               counter++;

       }

       endTime = System.currentTimeMillis();

       step3TD = endTime - startTime;

       System.out.println(\"Time to find the number of elements of 58: \" + step3TD + \" ms\");

       System.out.println(\"Number of elements of 58: \" + counter);

      

       //Step 4 - Sorting the array

       startTime = System.currentTimeMillis();

       sort();

       endTime = System.currentTimeMillis();

       System.out.println(\"Time to sort the array: \" + (endTime - startTime) + \" ms\");

      

       //Step 5 _ find the difference in timing

       step4_5TD = System.currentTimeMillis() - startTime;

       System.out.println(\"Time difference: \" + (step4_5TD - step3TD) + \" ms\");

      

      

   }

}

OUTPUT:

Time taken to generate 100000 numbers: 8 ms

Time to find the element (58): 0 ms

Time to find the number of elements of 58: 1 ms

Number of elements of 58: 661

Time to sort the array: 3685 ms

Time difference: 3684 ms

Using Selection Sort, Generate 100000 positive numbers between (0,150) Search the position of the first “58” in the array Count how many “58” in the array Sort
Using Selection Sort, Generate 100000 positive numbers between (0,150) Search the position of the first “58” in the array Count how many “58” in the array Sort
Using Selection Sort, Generate 100000 positive numbers between (0,150) Search the position of the first “58” in the array Count how many “58” in the array Sort

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site