My goal is to write an algorithm that checks if an unsorted array of positive integers contains a value x and x^2 and return their indices if so. I've solved this by proposing that first you sort the array using merge sort, then perform binary search for x, then perform binary search for x^2. I then wrote that "since binary search has worst-case runtime of O(log n) and merge sort has worst-case runtime of O(n log n), we conclude that the worst-case runtime of this algorithm is O(n log n)." Am I correct in my understanding that when analyzing the overall efficiency of an algorithm that involves steps with different runtimes, we just take the one with the longest runtime? Or is it more involved than this? Thanks in advance!
Worst-case time complexity of an algorithm with 2+ steps
77 Views Asked by liatkatz At
2
There are 2 best solutions below
2
derpirscher
On
Your question is a bit ambigous. Do you get
- an unsorted list
[a,b,c ...]and a specificxto search for as parameter?
or
- just get the list and have to find if there is at least one pair
(x,y)withx^2 = ycontained in the list?
Now as you have cleared it's the first, the answer is O(n), because you just have to iterate over the list (no need to sort or binary search) and check for each element if it's equal to x or x^2. If you find both, the list fulfills the condition.
function match(list, x) {
let ix = -1, ixx = -1;
for (let i = 0; i< list.length && (ix == -1 || ixx == -1); i++) {
if (i == x) ix = i;
if (i == x*x) ixx = i;
}
return [ix, ixx];
}
This returns the indexes of x and x^2 or, if not found -1 for the respective index. It returns, once both values are found in the list
Related Questions in ALGORITHM
- MCNP 6 - Doubts about cells
- Given partially sorted array of type x<y => first apperance of x comes before first of y, sort in average O(n)
- What is the algorithm behind math.gcd and why it is faster Euclidean algorithm?
- Purpose of last 2 while loops in the merge algorithm of merge sort sorting technique
- Dots and Boxes with apha-beta pruning
- What is the average and worst-case time complexity of my string searching algorithm?
- Building a School Schedule Generator
- TC problem 5-2:how to calculate the probability of the indicator random variable?
- LCA of a binary tree implemented in Python
- Identify the checksum algorithm
- Algorithm for finding a subset of nodes in a weighted connected graph such that the distance between any pair nodes are under a postive number?
- Creating an efficent and time-saving algorithm to find difference between greater than and lesser than combination
- Algorithm to find neighbours of point by distance with no repeats
- Asking code suggestions about data structure and algorithm
- Heap sort with multithreading
Related Questions in SORTING
- Sorting a List by its property renames all the objects in the List
- Does Sort() method in C# use recursion?
- ARM Assembly code is not executing in Vitis IDE
- Creating an efficent and time-saving algorithm to find difference between greater than and lesser than combination
- Heap sort with multithreading
- Laravel Livewire data table sorting livewire update payload
- basic MergeSort exercise
- How to import a range into a variant array in Excel VBA and sort using the sort method?
- Looker Studio | pivot chart - sorting by metric and last month
- how to create an array of multiples of 5 and display it in reverse
- matplotlib sort barh by values
- Custom Sorting Javascript with A-Z set
- Mainframe Programming Sorting, OUTFIL REMOVECC,NODETAIL
- Soft list based on another list
- SQL query : creating table with distinct values on selected columns
Related Questions in TIME-COMPLEXITY
- C++ : Is there an objective universal way to compare the speed of iterative algorithms?
- Simplify complexity
- How to find big o of dependent loops and recursive functions?
- find number of unique durations given a list of durations and an upper bound
- What is the time complexity of doing two binary searches on an array?
- How to determine the time complexity of a recursive function that has a loop enclosed in it?
- Why is time complexity of Generate Parentheses O(4^n ( sqr root( n)))
- Find median in constant time O(1)
- Best Index - HackerEarth Solution, help me optimize the code
- Time complexity of Insertion Sort of an array of n numbers, with additional information
- How come checking for printable bytes is faster with the "in" operator rather than interval comparisons?
- Generate cuboids with integer sides and diagonals: how to improve the time complexity?
- What is the time complexity of this algorithm with two arrays?
- calculating number of operations in algorithm
- Time complexity of Rectangle Covering algorithm
Related Questions in BIG-O
- Why is the runtime for this O(n)?
- What is the average and worst-case time complexity of my string searching algorithm?
- Complexity in Union of disjointed sets with lists
- Usage of merge in linux sort utility
- How to find big o of dependent loops and recursive functions?
- calculating number of operations in algorithm
- How to differentiate between O(n^2) and O(2^n) in dynamic programming with 2 parameters with memoization?
- Having confusion with calculating Big O complexity
- Write code to match a specific Big-O-Notation
- Error vs time complexity in big-O notation
- Time complexity of simultaneous iteration
- Time complexity for recursive binary search that also prints current subarray
- What's the Time Complexity of two separate inner loops nested in an outer loop?
- String manipulation & algorithmic complexity
- Big O notation of string permutation in Python
Related Questions in AMORTIZED-ANALYSIS
- Proof Hotlist amortized analysis is O(sqrt(n)) for Insert and Contain Operations - Hotlist Data Structure
- Resizing an array by a non-constant, over and over
- Why does total amortized cost need to be an upper bound on total actual cost?
- Why isn't Python itertools.combinations() in O(1) amortized time complexity?
- Explaining amortized analysis on dynamic array
- Proving that amortized time of insertion and deletion on an expanding array is O(1)
- An example to show that amortized analysis and average-case analysis may give asymptotically different results
- Amortized time complexity: DecreaseKey() in Fibonacci Heap
- Is there a function for condensing an expression that has many redundant terms so as to not have to recalculate them?
- Worst-case time complexity of an algorithm with 2+ steps
- How to amortise revenue / cost by month in SQL (ideally PostgreSQL)
- Is amortized time complexity analysis broken for immutable colections?
- Why is amortized cost of Python list append is O(1) even though it does not double the capacity when there is no space left?
- What time complexity does this graph represent?
- Amortized Cost in Data Structure
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Since
O(log n) < O(n log n):O(n log n) + O(log n) + O(log n) = O(n log n)So the time complexity of the hole algorithm is
O(n log n).