Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Perform an experimental analysis of the two algorithms prefixAverage1 and prefixAverage2. Visualize their running times as a function of the input size with a log-log

Perform an experimental analysis of the two algorithms prefixAverage1 and prefixAverage2. Visualize their running times as a function of the input size with a log-log chart (java) Hint: Choose representative values of the input size n, and run 5 tests for each size value n:

/** Returns an array a such that, for all j, a[j] equals the average of x[0], ..., x[j]. */ public static double[] prefixAverage1(double[] x) { int n = x.length; double[] a = new double[n]; // filled with zeros by default for (int j=0; j < n; j++) { double total = 0; // begin computing x[0] + ... + x[j] for (int i=0; i <= j; i++) total += x[i]; a[j] = total / (j+1); // record the average } return a; }

/** Returns an array a such that, for all j, a[j] equals the average of x[0], ..., x[j]. */ public static double[] prefixAverage2(double[] x) { int n = x.length; double[] a = new double[n]; // filled with zeros by default double total = 0; // compute prefix sum as x[0] + x[1] + ... for (int j=0; j < n; j++) { total += x[j]; // update prefix sum to include x[j] a[j] = total / (j+1); // compute average based on current sum } return a; }

The code I have to answer this is as follows; however, I'm not sure it's correct. I'm also not sure how to properly test it, as there is code missing?

import java.io.FileWriter; import java.io.IOException;

class PrefixAverage { public static void main(String[]args)throws IOException { //0th argument contains the name of the algorithm String algo=args[0]; //1st argument contains the name of the file//make new file FileWriter fw =new FileWriter(args[1]); if(algo.equals("p1")) { //2nd argument comes in the form of a string //convert to integer and run loop for(int i=1;i

/** Returns an array a such that, for all j, a[j] equals the average of x[0], ..., x[j]. */ public static double[] prefixAverage1(double[] x) { int n = x.length; double[] a = new double[n]; // filled with zeros by default for (int j=0; j < n; j++) { double total = 0; // begin computing x[0] + ... + x[j] for (int i=0; i <= j; i++) total += x[i]; a[j] = total / (j+1); // record the average } return a; }

/** Returns an array a such that, for all j, a[j] equals the average of x[0], ..., x[j]. */ public static double[] prefixAverage2(double[] x) { int n = x.length; double[] a = new double[n]; // filled with zeros by default double total = 0; // compute prefix sum as x[0] + x[1] + ... for (int j=0; j < n; j++) { total += x[j]; // update prefix sum to include x[j] a[j] = total / (j+1); // compute average based on current sum } return a; } public static int example1(int[]arr) { int n=arr.length,total=0; for(int i=0;i

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Professional SQL Server 2012 Internals And Troubleshooting

Authors: Christian Bolton, Justin Langford

1st Edition

1118177657, 9781118177655

More Books

Students also viewed these Databases questions