spot7.org logo
Home PHP C# C++ Android Java Javascript Python IOS SQL HTML Categories

Heap Sort Space Complexity


The implementation of heapsort that you've described above sure doesn't look like it works in constant space for precisely the reason that you're worried about.

However, that doesn't mean that it's not possible to implement heapsort in O(1) auxiliary space. Typically, an implementation of heapsort would reorder the elements in the array to implicitly store a binary max-heap. One nifty detail about max-heaps is that the way to dequeue from a max-heap is to swap the root node (the first array element) with the rightmost leaf (the last element in the array that's a part of the heap) and to then bubble that element downward. This means that you can repeatedly dequeue from the max-heap by swapping the first array element with the rightmost slot in the array that hasn't been filled in, then bubbling the swapped element into place. That requires only O(1) auxiliary storage space and is the typical way that heapsort is implemented.

If you're curious, I have my own implementation of heapsort on my personal site, which shows off how to do this.


Categories : Algorithm

Related to : Heap Sort Space Complexity
Why does a dynamically linked executable on Linux have the complete memory space of libc in its own memory space?
Why does the system map the whole libc and ld shared objects into the process' memory range? I thought there would only be a pointer to the libc which is loaded in memory only once systemwide? It does map it once systemwide, then it maps those pages into each process' virtual memory address space. Those pages are shared by every process (at least the read-only parts) You can't just hav

Categories : C++
Complexity of a basic algorithm?
When determining complexities, we don't include constants or coefficients. Instead of O(2N + 2), it should be O(n). We only care about numbers if they're exponential, i.e. 2^n or n^2, log2(n), etc. Putting that aside, are you sure this is O(n)? O(n) would mean that it runs n times, but it looks like j is going to catch up to n before n times. See what I'm saying? EDIT: Ok, here's what's going o

Categories : Java
What's the order of complexity (Big O) of this code
The inner loop is O(N^2) for prime numbers but fast for non-primes (worst case O(N^1/2) because you only have to search up to sqrt(N)). The number of prime numbers, however, is small compared to the number of non-primes. An approximation of the number of primes to up X is: X / log(X), as found in this reference link. So throwing out the non-primes as inconsequential, there are N / log(N) prime

Categories : C
Complexity of enum.values()
The array returned by Colour.values() always contains the same elements, but values() creates a new array every time it's called (so it's O(n) where n is the number of enum values). And you never modify that array. So calling the method every time you need it is a waste of time. And storing an array in every instance of your DataStructure class is a waste of time and memory. I would simply call th

Categories : Java
SPARQL Query Computational Complexity
SPARQL itself is PSPACE-complete. You can probably only come up with the best case complexity for any given query. The real-world complexity will depend on the implementation of the database to some degree.

Categories : Algorithm
Recently Add
Proving optimality for a new algorithm that finds minimum spanning tree
why this assembly piece of code do jmp forever
Find out if segment is fully inside of polygon
Algorithm for coloring a hexagon tile map with minimum distance (3) for reoccurring colors
Sort pairs to be more consecutive
To find three unique numbers whose number of occurrence is even
Dealing with duplication between unit and integration tests
reflection and symmetry in back tracking queens
Big O analysis for method with multiple parameters
Divide Huge Array of Numbers in Buckets
Algorithm to find adjacent cells in a matrix
Why this code gives WA for Petersen Graph(codechef)?
Complexity of this prime number search algorithm
How to detect if a file has changed?
Given string x,y and z. Determine if z is a shuffle
Basic decryption for simple encryption algorithm
An efficient way to assign user_ids to huge dataset under certain conditions
What's a more efficient implementation of this puzzle?
Generating prime numbers in poly-time
What if I do not use G transpose in calculating Strongly Connected Components?
Dividing an array into optimum no of equal sum sublists
Counting derangements
How to iterate through all cases when partitioning objects
Algorithm: How to find closest element, having coordinates and dimension
Developing player rankings with ELO
How to transform two set of discrete points ( vectors ) to help plotting them on a common scale
Heap Sort Space Complexity
complex root finding algorithm
Every possible combination algorithm
RSA Cryptosystem - Retrieve m
© Copyright 2017 spot7.org Publishing Limited. All rights reserved.