TIME COMPLEXITY
SPACE COMPLEXITY
c o l o r s Explained
- traversing pointer
- swap required
- swap completed
- node sorted
- min value position
- traversing pointer
- current min value
- swap required
- swap completed
- node sorted
- insertion value
- correct insertion position
- node sorted
- partition point
- nodes being merged
- merge completed (sorted)
- pivot
- left pointer
- right pointer
- swap required
- swap completed
- correct position for pivot
- node sorted
- parent node
- left child
- right child
- swap required
- swap completed
- node sorted
code trace
for each unsorted element i
if i > rightNeighbor
swap(i, rightNeighbor)
set i = current position for min value
for each unsorted element j
if j < minimum
mark j as new minimum
swap(i, j), i++
for each unsorted element i
for j = previous sorted element
if i > j
move j one step to the right
insert i
split elements into partitions by mid point
recursively merge adjacent partitions
for leftPartitionElement and rightPartitionElement
if (leftPartitionElement <= rightPartitionElement)
merge leftPartitionElement
else: merge rightPartitionElement
copy merged elements back to original array
for each unsorted partition
set first element as pivot
while (leftPointer < rightPointer)
while (leftElement <= pivot) leftPointer++
while (rightElement > pivot) rightPointer--;
swap(leftElement, rightElement)
swap(pivot, rightElement)
for each none-leaf element
heapify recursively to create max heap
heapify(arraySize, element)
for each element in max heap
swap(firstElement, tailElement)
heapify(arraySize, 0)
heapify(arraySize, parentNode)
if (leftChild > parentNode)
largestNode = leftChild
if (rightChild > parentNode)
largestNode = rightChild
swap(parentNode, largestNode)
heapify(arraySize, largestNode)