Question
Consider the following two algorithms. void algorithm1 (int [] a, int m) { Random rand = new Random(); for (int i = 1; i
- Consider the following two algorithms.
void algorithm1 (int [] a, int m) {
Random rand = new Random();
for (int i = 1; i <= m; i++){
int v = rand.nextInt();
sequentialSearch(a, v); //sequential search of value v in a[]
}
}
void algorithm2(int a[], int m){
quickSort(a, 0, a.length-1); //quick sort of array a[]
for (int i = 1; i <= m; i++){
int v = rand.nextInt();
binarySearch(a, v); // binary search of value v in array a[]
}
}
What is the worst case complexity (in big O notation) of each of algorithm1 and algorithm2 in terms of n and m, where n = a.length and m is the given parameter? Assume rand.nextInt() is O(1). Justify the complexity.
Answer:
Algorithm | Complexity (in big O notation) | Why? |
algorithm1 |
|
|
algorithm2 |
|
|
Which algorithm is faster and why?
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started