answersLogoWhite

0

The heap sort algorithm is as follows:

1. Call the build_max_heap() function.

2. Swap the first and last elements of the max heap.

3. Reduce the heap by one element (elements that follow the heap are in sorted order).

4. Call the sift_down() function.

5. Goto step 2 unless the heap has one element.

The build_max_heap() function creates the max heap and takes linear time, O(n). The sift_down() function moves the first element in the heap into its correct index, thus restoring the max heap property. This takes O(log(n)) and is called n times, so takes O(n * log(n)). The complete algorithm therefore equates to O(n + n * log(n)).

If you start with a max heap rather than an unsorted array, there will be no difference in the runtime because the build_max_heap() function will still take O(n) time to complete. However, the mere fact you are starting with a max heap means you must have built that heap prior to calling the heap sort algorithm, so you've actually increased the overall runtime by an extra O(n), thus taking O(2n * log(n)) in total.

User Avatar

Wiki User

9y ago

What else can I help you with?

Related Questions

Is heyristic an algorithm?

A heuristic is not an algorithm, but rather a general rule of thumb. It doesn't always work, but it's fairly decent.


Difference between bare foot and shin running?

Bare foot running is very unique and is different from other forms of running. Barefoot running relies on a strike on the ball of the foot first, rather than applying pressure on the heel. Through the barefoot form, less energy is used when running.


Can you patent algorithms?

Yes, algorithms can be patented if they meet the criteria of being novel, non-obvious, and useful. However, the patent must be for a specific application or implementation of the algorithm, rather than the algorithm itself.


The pair of elements that forms a bond with the least ionic character is what?

The pair of elements that forms a bond with the least ionic character is covalent bonds. In covalent bonds, electrons are shared between atoms rather than transferred, resulting in minimal difference in electronegativity between the elements involved.


What is the difference between a node and an element in XML?

Elements are used to encapsulate pieces of data, and attributes are generally used to provide accompanying information about an element, rather than to encapsulate raw data itself.


Does covalent compounds have a high or low electronegativity?

In comparison with ionic bonds, the difference in electronegativities of elements in a covalent bond have a lower difference in electronegativities. A covalent bond occurs between two nonmetals that have a difference in electronegativities that is 1.7 or less. Usually an ionic bond has a difference in electronegativities that is greater than 1.7, but not always.


Is sunlight made up of elements?

No. Any kind of light is not made up of elements, but rather of photons, which have no rest mass.


How do you overcome limitations of stacks in polygon filling?

You overcome limitations of the stack in polygon filling, or in any other algorithm, far that matter, but using an iterative technique, rather than a recursive technique. Recursion is quite useful, and can simplify algorithm design. Polygon filling, however, is a class of algorithm can potentially have a very deep recursion depth. This causes stress on the stack, hence the need for iteration.


How does the composition of most minerals differ from a pure element?

Minerals are typically composed of a combination of elements, rather than being pure elements. These elements are bonded together in specific arrangements to form the mineral's crystalline structure. This composition gives minerals their distinct physical and chemical properties.


When using a electronegativity chart to determine the type of bond will form between the elements As plus Al?

As (Arsenic) has an electronegativity of around 2.18, while Al (Aluminum) has an electronegativity of around 1.61. Since there is a difference in electronegativity between the two elements, they are likely to form an ionic bond rather than a covalent bond.


What does longtudinal mean?

The definition for the word longitudinal is "running lengthwise rather than across."


When is it better to pass an entire array of data to a function rather than individual elements?

It is better to do this when the function needs to work on the entire array, rather than on individual elements. However, do not pass the array by value; always pass by reference.