floyd’s buildheap, sorting · -heap review and array implementation of heap -floyd’s buildheap...
TRANSCRIPT
Floyd’s buildHeap, Sorting
CSE 373: Data Structures and Algorithms
Thanks to Kasey Champion, Ben Jones, Adam Blank, Michael Lee, Evan McCarty, Robbie Weber, Whitaker Brand, Zora Fung, Stuart Reges, Justin Hsia, Ruth Anderson, and many others for sample slides and materials ...
Autumn 2018
Shrirang (Shri) Mare [email protected]
-Heap review and Array implementation of Heap -Floyd’s buildHeap algorithm - Intro to Sorting - Insertion sort -Heap sort
Today
!2
Heap is a tree-based data structure that satisfies - (a) structure property: it’s a complete tree - (b) heap property, which states: - for min-heap: - for max-heap:
- Operations (for min-heap): - removeMin()- peekMin()- insert()
- Applications: priority queue, sorting, ..
Heap review
!3
paren t ≤ ch ildrenparen t ≥ ch ildren
removeMin()
!5
1
354
6294 1139
96 95 75 82 43 50 36 49
min-heap
function removeMinlast = last node in the treeminvalue = rootswap root with lastpercolateDown(root)return minvalue
end function<latexit sha1_base64="0oZpHWbxCd26cpWZMvf2MmWbEhw=">AAADVnicbVLbbhMxEPUmlJZwS+GRF4ukUpFQlfSFviAqcREvSEWQtlISRV7vJLHqy8oeJ0SrfAGv8G/wM8BsLtCkjLTa43NmPBdPmmsVsNX6mVSqt3Zu7+7dqd29d//Bw/r+o/PgopfQkU47f5mKAFpZ6KBCDZe5B2FSDRfp1etSv5iAD8rZzzjLoW/EyKqhkgKJGtR/91IYKVsIPXJe4djMa9uMksS9i1aWEYUH4ybwQdl5QfQnFAi8qUXAJn/Jyz+3LgOuLMcxcPQAf72MshOhI5Cjdw6bayFMRc6bC4pPKePqvrWcg6c+Cb1xU3u49Hu2Fj1g9Pbf3RT11mbrams9sNlWJxvMfFBvtI5aC+M3QXsFGmxlZ4P95FUvczIasCipztDFqaP6orHP260c+4XwqKQGShUD5EJeiRF0CVphIPSLxZvN+QExGR86T59FvmCvRxTChDAzKXkageOwrZXk/7RuxOFJv1A2jwhWLhMNo+boeLkAPFMeJOoZASFpCEpyORZeSKQ12cxybSc26TxApCHQQ5NEZw8WptIZI2zWQ/iCuXeymB/wTtkkZU6BL/ggazUaeXt7wDfB+fFRm/DH48bpyWr4e+wJe8oOWZu9YKfsPTtjHSYTSL4m35LvlR+VX9Wd6u7StZKsYh6zDavW/wDtWhQE</latexit><latexit sha1_base64="0oZpHWbxCd26cpWZMvf2MmWbEhw=">AAADVnicbVLbbhMxEPUmlJZwS+GRF4ukUpFQlfSFviAqcREvSEWQtlISRV7vJLHqy8oeJ0SrfAGv8G/wM8BsLtCkjLTa43NmPBdPmmsVsNX6mVSqt3Zu7+7dqd29d//Bw/r+o/PgopfQkU47f5mKAFpZ6KBCDZe5B2FSDRfp1etSv5iAD8rZzzjLoW/EyKqhkgKJGtR/91IYKVsIPXJe4djMa9uMksS9i1aWEYUH4ybwQdl5QfQnFAi8qUXAJn/Jyz+3LgOuLMcxcPQAf72MshOhI5Cjdw6bayFMRc6bC4pPKePqvrWcg6c+Cb1xU3u49Hu2Fj1g9Pbf3RT11mbrams9sNlWJxvMfFBvtI5aC+M3QXsFGmxlZ4P95FUvczIasCipztDFqaP6orHP260c+4XwqKQGShUD5EJeiRF0CVphIPSLxZvN+QExGR86T59FvmCvRxTChDAzKXkageOwrZXk/7RuxOFJv1A2jwhWLhMNo+boeLkAPFMeJOoZASFpCEpyORZeSKQ12cxybSc26TxApCHQQ5NEZw8WptIZI2zWQ/iCuXeymB/wTtkkZU6BL/ggazUaeXt7wDfB+fFRm/DH48bpyWr4e+wJe8oOWZu9YKfsPTtjHSYTSL4m35LvlR+VX9Wd6u7StZKsYh6zDavW/wDtWhQE</latexit><latexit sha1_base64="0oZpHWbxCd26cpWZMvf2MmWbEhw=">AAADVnicbVLbbhMxEPUmlJZwS+GRF4ukUpFQlfSFviAqcREvSEWQtlISRV7vJLHqy8oeJ0SrfAGv8G/wM8BsLtCkjLTa43NmPBdPmmsVsNX6mVSqt3Zu7+7dqd29d//Bw/r+o/PgopfQkU47f5mKAFpZ6KBCDZe5B2FSDRfp1etSv5iAD8rZzzjLoW/EyKqhkgKJGtR/91IYKVsIPXJe4djMa9uMksS9i1aWEYUH4ybwQdl5QfQnFAi8qUXAJn/Jyz+3LgOuLMcxcPQAf72MshOhI5Cjdw6bayFMRc6bC4pPKePqvrWcg6c+Cb1xU3u49Hu2Fj1g9Pbf3RT11mbrams9sNlWJxvMfFBvtI5aC+M3QXsFGmxlZ4P95FUvczIasCipztDFqaP6orHP260c+4XwqKQGShUD5EJeiRF0CVphIPSLxZvN+QExGR86T59FvmCvRxTChDAzKXkageOwrZXk/7RuxOFJv1A2jwhWLhMNo+boeLkAPFMeJOoZASFpCEpyORZeSKQ12cxybSc26TxApCHQQ5NEZw8WptIZI2zWQ/iCuXeymB/wTtkkZU6BL/ggazUaeXt7wDfB+fFRm/DH48bpyWr4e+wJe8oOWZu9YKfsPTtjHSYTSL4m35LvlR+VX9Wd6u7StZKsYh6zDavW/wDtWhQE</latexit><latexit sha1_base64="0oZpHWbxCd26cpWZMvf2MmWbEhw=">AAADVnicbVLbbhMxEPUmlJZwS+GRF4ukUpFQlfSFviAqcREvSEWQtlISRV7vJLHqy8oeJ0SrfAGv8G/wM8BsLtCkjLTa43NmPBdPmmsVsNX6mVSqt3Zu7+7dqd29d//Bw/r+o/PgopfQkU47f5mKAFpZ6KBCDZe5B2FSDRfp1etSv5iAD8rZzzjLoW/EyKqhkgKJGtR/91IYKVsIPXJe4djMa9uMksS9i1aWEYUH4ybwQdl5QfQnFAi8qUXAJn/Jyz+3LgOuLMcxcPQAf72MshOhI5Cjdw6bayFMRc6bC4pPKePqvrWcg6c+Cb1xU3u49Hu2Fj1g9Pbf3RT11mbrams9sNlWJxvMfFBvtI5aC+M3QXsFGmxlZ4P95FUvczIasCipztDFqaP6orHP260c+4XwqKQGShUD5EJeiRF0CVphIPSLxZvN+QExGR86T59FvmCvRxTChDAzKXkageOwrZXk/7RuxOFJv1A2jwhWLhMNo+boeLkAPFMeJOoZASFpCEpyORZeSKQ12cxybSc26TxApCHQQ5NEZw8WptIZI2zWQ/iCuXeymB/wTtkkZU6BL/ggazUaeXt7wDfB+fFRm/DH48bpyWr4e+wJe8oOWZu9YKfsPTtjHSYTSL4m35LvlR+VX9Wd6u7StZKsYh6zDavW/wDtWhQE</latexit>
Calls: removeMin()
removeMin()
!6
49
354
6294 1139
96 95 75
function removeMinlast = last node in the treeminvalue = rootswap root with lastpercolateDown(root)return minvalue
end function<latexit sha1_base64="0oZpHWbxCd26cpWZMvf2MmWbEhw=">AAADVnicbVLbbhMxEPUmlJZwS+GRF4ukUpFQlfSFviAqcREvSEWQtlISRV7vJLHqy8oeJ0SrfAGv8G/wM8BsLtCkjLTa43NmPBdPmmsVsNX6mVSqt3Zu7+7dqd29d//Bw/r+o/PgopfQkU47f5mKAFpZ6KBCDZe5B2FSDRfp1etSv5iAD8rZzzjLoW/EyKqhkgKJGtR/91IYKVsIPXJe4djMa9uMksS9i1aWEYUH4ybwQdl5QfQnFAi8qUXAJn/Jyz+3LgOuLMcxcPQAf72MshOhI5Cjdw6bayFMRc6bC4pPKePqvrWcg6c+Cb1xU3u49Hu2Fj1g9Pbf3RT11mbrams9sNlWJxvMfFBvtI5aC+M3QXsFGmxlZ4P95FUvczIasCipztDFqaP6orHP260c+4XwqKQGShUD5EJeiRF0CVphIPSLxZvN+QExGR86T59FvmCvRxTChDAzKXkageOwrZXk/7RuxOFJv1A2jwhWLhMNo+boeLkAPFMeJOoZASFpCEpyORZeSKQ12cxybSc26TxApCHQQ5NEZw8WptIZI2zWQ/iCuXeymB/wTtkkZU6BL/ggazUaeXt7wDfB+fFRm/DH48bpyWr4e+wJe8oOWZu9YKfsPTtjHSYTSL4m35LvlR+VX9Wd6u7StZKsYh6zDavW/wDtWhQE</latexit><latexit sha1_base64="0oZpHWbxCd26cpWZMvf2MmWbEhw=">AAADVnicbVLbbhMxEPUmlJZwS+GRF4ukUpFQlfSFviAqcREvSEWQtlISRV7vJLHqy8oeJ0SrfAGv8G/wM8BsLtCkjLTa43NmPBdPmmsVsNX6mVSqt3Zu7+7dqd29d//Bw/r+o/PgopfQkU47f5mKAFpZ6KBCDZe5B2FSDRfp1etSv5iAD8rZzzjLoW/EyKqhkgKJGtR/91IYKVsIPXJe4djMa9uMksS9i1aWEYUH4ybwQdl5QfQnFAi8qUXAJn/Jyz+3LgOuLMcxcPQAf72MshOhI5Cjdw6bayFMRc6bC4pPKePqvrWcg6c+Cb1xU3u49Hu2Fj1g9Pbf3RT11mbrams9sNlWJxvMfFBvtI5aC+M3QXsFGmxlZ4P95FUvczIasCipztDFqaP6orHP260c+4XwqKQGShUD5EJeiRF0CVphIPSLxZvN+QExGR86T59FvmCvRxTChDAzKXkageOwrZXk/7RuxOFJv1A2jwhWLhMNo+boeLkAPFMeJOoZASFpCEpyORZeSKQ12cxybSc26TxApCHQQ5NEZw8WptIZI2zWQ/iCuXeymB/wTtkkZU6BL/ggazUaeXt7wDfB+fFRm/DH48bpyWr4e+wJe8oOWZu9YKfsPTtjHSYTSL4m35LvlR+VX9Wd6u7StZKsYh6zDavW/wDtWhQE</latexit><latexit sha1_base64="0oZpHWbxCd26cpWZMvf2MmWbEhw=">AAADVnicbVLbbhMxEPUmlJZwS+GRF4ukUpFQlfSFviAqcREvSEWQtlISRV7vJLHqy8oeJ0SrfAGv8G/wM8BsLtCkjLTa43NmPBdPmmsVsNX6mVSqt3Zu7+7dqd29d//Bw/r+o/PgopfQkU47f5mKAFpZ6KBCDZe5B2FSDRfp1etSv5iAD8rZzzjLoW/EyKqhkgKJGtR/91IYKVsIPXJe4djMa9uMksS9i1aWEYUH4ybwQdl5QfQnFAi8qUXAJn/Jyz+3LgOuLMcxcPQAf72MshOhI5Cjdw6bayFMRc6bC4pPKePqvrWcg6c+Cb1xU3u49Hu2Fj1g9Pbf3RT11mbrams9sNlWJxvMfFBvtI5aC+M3QXsFGmxlZ4P95FUvczIasCipztDFqaP6orHP260c+4XwqKQGShUD5EJeiRF0CVphIPSLxZvN+QExGR86T59FvmCvRxTChDAzKXkageOwrZXk/7RuxOFJv1A2jwhWLhMNo+boeLkAPFMeJOoZASFpCEpyORZeSKQ12cxybSc26TxApCHQQ5NEZw8WptIZI2zWQ/iCuXeymB/wTtkkZU6BL/ggazUaeXt7wDfB+fFRm/DH48bpyWr4e+wJe8oOWZu9YKfsPTtjHSYTSL4m35LvlR+VX9Wd6u7StZKsYh6zDavW/wDtWhQE</latexit><latexit sha1_base64="0oZpHWbxCd26cpWZMvf2MmWbEhw=">AAADVnicbVLbbhMxEPUmlJZwS+GRF4ukUpFQlfSFviAqcREvSEWQtlISRV7vJLHqy8oeJ0SrfAGv8G/wM8BsLtCkjLTa43NmPBdPmmsVsNX6mVSqt3Zu7+7dqd29d//Bw/r+o/PgopfQkU47f5mKAFpZ6KBCDZe5B2FSDRfp1etSv5iAD8rZzzjLoW/EyKqhkgKJGtR/91IYKVsIPXJe4djMa9uMksS9i1aWEYUH4ybwQdl5QfQnFAi8qUXAJn/Jyz+3LgOuLMcxcPQAf72MshOhI5Cjdw6bayFMRc6bC4pPKePqvrWcg6c+Cb1xU3u49Hu2Fj1g9Pbf3RT11mbrams9sNlWJxvMfFBvtI5aC+M3QXsFGmxlZ4P95FUvczIasCipztDFqaP6orHP260c+4XwqKQGShUD5EJeiRF0CVphIPSLxZvN+QExGR86T59FvmCvRxTChDAzKXkageOwrZXk/7RuxOFJv1A2jwhWLhMNo+boeLkAPFMeJOoZASFpCEpyORZeSKQ12cxybSc26TxApCHQQ5NEZw8WptIZI2zWQ/iCuXeymB/wTtkkZU6BL/ggazUaeXt7wDfB+fFRm/DH48bpyWr4e+wJe8oOWZu9YKfsPTtjHSYTSL4m35LvlR+VX9Wd6u7StZKsYh6zDavW/wDtWhQE</latexit>
82 43 50 36
Broken heap
Calls: removeMin() 1
removeMin()
!7
49
354
6294 1139
96 95 75
1: function percolateDown(node)2: l = left child of node3: r = right child of node4: smallest = smallest in {l, r, node}5: if smallest 6= node then6: exchange node with smallest7: percolate(smallest)8: end if9: end function
<latexit sha1_base64="mKMz2l4Z7VEEf7X/wJ+yUgIQ8UE=">AAADrHicdVLLbtNAFLVrHsW8WliyGZFUKlIUxd3QDaISD9FdEUlbKY6q8fjaGXUeZmZMGln+Mr6EJVv4Ca7zIklhJMvH556r43vmJoXg1vV6P/yd4M7de/d3H4QPHz1+8nRv/9m51aVhMGBaaHOZUAuCKxg47gRcFgaoTARcJNfvmvrFNzCWa9V30wJGkuaKZ5xRh9TVvt+PE8i5qqjIteFuLOtwm+GsHkajMP5YKtZ0VQUYdKYO3uuJqqu20im0se+LQ460RZu8IQIyR9iYi5TojMwlK4VpFIbn4/9LrKRCgHWNcokJV6QdV6JDTIc08rjGhtOMVCs5iRV8JZs/BDdsTFUOCwsywaHWDJay1VSHf2uvwviDSk+z2Ws5fxiDSjfi2WLqq71Wr9ubHXIbRAvQ8hbnDO/hbZxqVkpQjglq7dBNNP5NKVUn6hVuVFHjOBOAVqWFgrJrmsMQoaIS7KiabUJNDpBJSaYNPgrDbdj1jopKa6cyQaWkbmy3aw35r9qwdNnxqOKqKB0oNjfKSkGcJs1akZQbYE5MEVCGIXCGN0sNZQ6Xb9NlbdE26cJCiSHgHWEJvw0omDAtJVVp7ODGFUazqj4gg2ZIdE6AzHjLwhAjj7YDvg3Oj7oR4s9HrZPjRfi73gvvpXfoRd5r78T75J15A4/53/2f/i//d9AN+sEwGM2lO/6i57m3cYLsD2LCL1o=</latexit><latexit sha1_base64="mKMz2l4Z7VEEf7X/wJ+yUgIQ8UE=">AAADrHicdVLLbtNAFLVrHsW8WliyGZFUKlIUxd3QDaISD9FdEUlbKY6q8fjaGXUeZmZMGln+Mr6EJVv4Ca7zIklhJMvH556r43vmJoXg1vV6P/yd4M7de/d3H4QPHz1+8nRv/9m51aVhMGBaaHOZUAuCKxg47gRcFgaoTARcJNfvmvrFNzCWa9V30wJGkuaKZ5xRh9TVvt+PE8i5qqjIteFuLOtwm+GsHkajMP5YKtZ0VQUYdKYO3uuJqqu20im0se+LQ460RZu8IQIyR9iYi5TojMwlK4VpFIbn4/9LrKRCgHWNcokJV6QdV6JDTIc08rjGhtOMVCs5iRV8JZs/BDdsTFUOCwsywaHWDJay1VSHf2uvwviDSk+z2Ws5fxiDSjfi2WLqq71Wr9ubHXIbRAvQ8hbnDO/hbZxqVkpQjglq7dBNNP5NKVUn6hVuVFHjOBOAVqWFgrJrmsMQoaIS7KiabUJNDpBJSaYNPgrDbdj1jopKa6cyQaWkbmy3aw35r9qwdNnxqOKqKB0oNjfKSkGcJs1akZQbYE5MEVCGIXCGN0sNZQ6Xb9NlbdE26cJCiSHgHWEJvw0omDAtJVVp7ODGFUazqj4gg2ZIdE6AzHjLwhAjj7YDvg3Oj7oR4s9HrZPjRfi73gvvpXfoRd5r78T75J15A4/53/2f/i//d9AN+sEwGM2lO/6i57m3cYLsD2LCL1o=</latexit><latexit sha1_base64="mKMz2l4Z7VEEf7X/wJ+yUgIQ8UE=">AAADrHicdVLLbtNAFLVrHsW8WliyGZFUKlIUxd3QDaISD9FdEUlbKY6q8fjaGXUeZmZMGln+Mr6EJVv4Ca7zIklhJMvH556r43vmJoXg1vV6P/yd4M7de/d3H4QPHz1+8nRv/9m51aVhMGBaaHOZUAuCKxg47gRcFgaoTARcJNfvmvrFNzCWa9V30wJGkuaKZ5xRh9TVvt+PE8i5qqjIteFuLOtwm+GsHkajMP5YKtZ0VQUYdKYO3uuJqqu20im0se+LQ460RZu8IQIyR9iYi5TojMwlK4VpFIbn4/9LrKRCgHWNcokJV6QdV6JDTIc08rjGhtOMVCs5iRV8JZs/BDdsTFUOCwsywaHWDJay1VSHf2uvwviDSk+z2Ws5fxiDSjfi2WLqq71Wr9ubHXIbRAvQ8hbnDO/hbZxqVkpQjglq7dBNNP5NKVUn6hVuVFHjOBOAVqWFgrJrmsMQoaIS7KiabUJNDpBJSaYNPgrDbdj1jopKa6cyQaWkbmy3aw35r9qwdNnxqOKqKB0oNjfKSkGcJs1akZQbYE5MEVCGIXCGN0sNZQ6Xb9NlbdE26cJCiSHgHWEJvw0omDAtJVVp7ODGFUazqj4gg2ZIdE6AzHjLwhAjj7YDvg3Oj7oR4s9HrZPjRfi73gvvpXfoRd5r78T75J15A4/53/2f/i//d9AN+sEwGM2lO/6i57m3cYLsD2LCL1o=</latexit><latexit sha1_base64="mKMz2l4Z7VEEf7X/wJ+yUgIQ8UE=">AAADrHicdVLLbtNAFLVrHsW8WliyGZFUKlIUxd3QDaISD9FdEUlbKY6q8fjaGXUeZmZMGln+Mr6EJVv4Ca7zIklhJMvH556r43vmJoXg1vV6P/yd4M7de/d3H4QPHz1+8nRv/9m51aVhMGBaaHOZUAuCKxg47gRcFgaoTARcJNfvmvrFNzCWa9V30wJGkuaKZ5xRh9TVvt+PE8i5qqjIteFuLOtwm+GsHkajMP5YKtZ0VQUYdKYO3uuJqqu20im0se+LQ460RZu8IQIyR9iYi5TojMwlK4VpFIbn4/9LrKRCgHWNcokJV6QdV6JDTIc08rjGhtOMVCs5iRV8JZs/BDdsTFUOCwsywaHWDJay1VSHf2uvwviDSk+z2Ws5fxiDSjfi2WLqq71Wr9ubHXIbRAvQ8hbnDO/hbZxqVkpQjglq7dBNNP5NKVUn6hVuVFHjOBOAVqWFgrJrmsMQoaIS7KiabUJNDpBJSaYNPgrDbdj1jopKa6cyQaWkbmy3aw35r9qwdNnxqOKqKB0oNjfKSkGcJs1akZQbYE5MEVCGIXCGN0sNZQ6Xb9NlbdE26cJCiSHgHWEJvw0omDAtJVVp7ODGFUazqj4gg2ZIdE6AzHjLwhAjj7YDvg3Oj7oR4s9HrZPjRfi73gvvpXfoRd5r78T75J15A4/53/2f/i//d9AN+sEwGM2lO/6i57m3cYLsD2LCL1o=</latexit>
82 43 50 36
Broken heap
Calls: removeMin() 1
nodepercolateDown(root)
smallest
removeMin()
!8
3
4954
6294 1139
96 95 75
1: function percolateDown(node)2: l = left child of node3: r = right child of node4: smallest = smallest in {l, r, node}5: if smallest 6= node then6: exchange node with smallest7: percolate(smallest)8: end if9: end function
<latexit sha1_base64="mKMz2l4Z7VEEf7X/wJ+yUgIQ8UE=">AAADrHicdVLLbtNAFLVrHsW8WliyGZFUKlIUxd3QDaISD9FdEUlbKY6q8fjaGXUeZmZMGln+Mr6EJVv4Ca7zIklhJMvH556r43vmJoXg1vV6P/yd4M7de/d3H4QPHz1+8nRv/9m51aVhMGBaaHOZUAuCKxg47gRcFgaoTARcJNfvmvrFNzCWa9V30wJGkuaKZ5xRh9TVvt+PE8i5qqjIteFuLOtwm+GsHkajMP5YKtZ0VQUYdKYO3uuJqqu20im0se+LQ460RZu8IQIyR9iYi5TojMwlK4VpFIbn4/9LrKRCgHWNcokJV6QdV6JDTIc08rjGhtOMVCs5iRV8JZs/BDdsTFUOCwsywaHWDJay1VSHf2uvwviDSk+z2Ws5fxiDSjfi2WLqq71Wr9ubHXIbRAvQ8hbnDO/hbZxqVkpQjglq7dBNNP5NKVUn6hVuVFHjOBOAVqWFgrJrmsMQoaIS7KiabUJNDpBJSaYNPgrDbdj1jopKa6cyQaWkbmy3aw35r9qwdNnxqOKqKB0oNjfKSkGcJs1akZQbYE5MEVCGIXCGN0sNZQ6Xb9NlbdE26cJCiSHgHWEJvw0omDAtJVVp7ODGFUazqj4gg2ZIdE6AzHjLwhAjj7YDvg3Oj7oR4s9HrZPjRfi73gvvpXfoRd5r78T75J15A4/53/2f/i//d9AN+sEwGM2lO/6i57m3cYLsD2LCL1o=</latexit><latexit sha1_base64="mKMz2l4Z7VEEf7X/wJ+yUgIQ8UE=">AAADrHicdVLLbtNAFLVrHsW8WliyGZFUKlIUxd3QDaISD9FdEUlbKY6q8fjaGXUeZmZMGln+Mr6EJVv4Ca7zIklhJMvH556r43vmJoXg1vV6P/yd4M7de/d3H4QPHz1+8nRv/9m51aVhMGBaaHOZUAuCKxg47gRcFgaoTARcJNfvmvrFNzCWa9V30wJGkuaKZ5xRh9TVvt+PE8i5qqjIteFuLOtwm+GsHkajMP5YKtZ0VQUYdKYO3uuJqqu20im0se+LQ460RZu8IQIyR9iYi5TojMwlK4VpFIbn4/9LrKRCgHWNcokJV6QdV6JDTIc08rjGhtOMVCs5iRV8JZs/BDdsTFUOCwsywaHWDJay1VSHf2uvwviDSk+z2Ws5fxiDSjfi2WLqq71Wr9ubHXIbRAvQ8hbnDO/hbZxqVkpQjglq7dBNNP5NKVUn6hVuVFHjOBOAVqWFgrJrmsMQoaIS7KiabUJNDpBJSaYNPgrDbdj1jopKa6cyQaWkbmy3aw35r9qwdNnxqOKqKB0oNjfKSkGcJs1akZQbYE5MEVCGIXCGN0sNZQ6Xb9NlbdE26cJCiSHgHWEJvw0omDAtJVVp7ODGFUazqj4gg2ZIdE6AzHjLwhAjj7YDvg3Oj7oR4s9HrZPjRfi73gvvpXfoRd5r78T75J15A4/53/2f/i//d9AN+sEwGM2lO/6i57m3cYLsD2LCL1o=</latexit><latexit sha1_base64="mKMz2l4Z7VEEf7X/wJ+yUgIQ8UE=">AAADrHicdVLLbtNAFLVrHsW8WliyGZFUKlIUxd3QDaISD9FdEUlbKY6q8fjaGXUeZmZMGln+Mr6EJVv4Ca7zIklhJMvH556r43vmJoXg1vV6P/yd4M7de/d3H4QPHz1+8nRv/9m51aVhMGBaaHOZUAuCKxg47gRcFgaoTARcJNfvmvrFNzCWa9V30wJGkuaKZ5xRh9TVvt+PE8i5qqjIteFuLOtwm+GsHkajMP5YKtZ0VQUYdKYO3uuJqqu20im0se+LQ460RZu8IQIyR9iYi5TojMwlK4VpFIbn4/9LrKRCgHWNcokJV6QdV6JDTIc08rjGhtOMVCs5iRV8JZs/BDdsTFUOCwsywaHWDJay1VSHf2uvwviDSk+z2Ws5fxiDSjfi2WLqq71Wr9ubHXIbRAvQ8hbnDO/hbZxqVkpQjglq7dBNNP5NKVUn6hVuVFHjOBOAVqWFgrJrmsMQoaIS7KiabUJNDpBJSaYNPgrDbdj1jopKa6cyQaWkbmy3aw35r9qwdNnxqOKqKB0oNjfKSkGcJs1akZQbYE5MEVCGIXCGN0sNZQ6Xb9NlbdE26cJCiSHgHWEJvw0omDAtJVVp7ODGFUazqj4gg2ZIdE6AzHjLwhAjj7YDvg3Oj7oR4s9HrZPjRfi73gvvpXfoRd5r78T75J15A4/53/2f/i//d9AN+sEwGM2lO/6i57m3cYLsD2LCL1o=</latexit><latexit sha1_base64="mKMz2l4Z7VEEf7X/wJ+yUgIQ8UE=">AAADrHicdVLLbtNAFLVrHsW8WliyGZFUKlIUxd3QDaISD9FdEUlbKY6q8fjaGXUeZmZMGln+Mr6EJVv4Ca7zIklhJMvH556r43vmJoXg1vV6P/yd4M7de/d3H4QPHz1+8nRv/9m51aVhMGBaaHOZUAuCKxg47gRcFgaoTARcJNfvmvrFNzCWa9V30wJGkuaKZ5xRh9TVvt+PE8i5qqjIteFuLOtwm+GsHkajMP5YKtZ0VQUYdKYO3uuJqqu20im0se+LQ460RZu8IQIyR9iYi5TojMwlK4VpFIbn4/9LrKRCgHWNcokJV6QdV6JDTIc08rjGhtOMVCs5iRV8JZs/BDdsTFUOCwsywaHWDJay1VSHf2uvwviDSk+z2Ws5fxiDSjfi2WLqq71Wr9ubHXIbRAvQ8hbnDO/hbZxqVkpQjglq7dBNNP5NKVUn6hVuVFHjOBOAVqWFgrJrmsMQoaIS7KiabUJNDpBJSaYNPgrDbdj1jopKa6cyQaWkbmy3aw35r9qwdNnxqOKqKB0oNjfKSkGcJs1akZQbYE5MEVCGIXCGN0sNZQ6Xb9NlbdE26cJCiSHgHWEJvw0omDAtJVVp7ODGFUazqj4gg2ZIdE6AzHjLwhAjj7YDvg3Oj7oR4s9HrZPjRfi73gvvpXfoRd5r78T75J15A4/53/2f/i//d9AN+sEwGM2lO/6i57m3cYLsD2LCL1o=</latexit>
82 43 50 36
Broken heap
Calls: removeMin() 1
node
smallestpercolateDown(smallest)
removeMin()
!9
3
4954
6294 1139
96 95 75
1: function percolateDown(node)2: l = left child of node3: r = right child of node4: smallest = smallest in {l, r, node}5: if smallest 6= node then6: exchange node with smallest7: percolate(smallest)8: end if9: end function
<latexit sha1_base64="mKMz2l4Z7VEEf7X/wJ+yUgIQ8UE=">AAADrHicdVLLbtNAFLVrHsW8WliyGZFUKlIUxd3QDaISD9FdEUlbKY6q8fjaGXUeZmZMGln+Mr6EJVv4Ca7zIklhJMvH556r43vmJoXg1vV6P/yd4M7de/d3H4QPHz1+8nRv/9m51aVhMGBaaHOZUAuCKxg47gRcFgaoTARcJNfvmvrFNzCWa9V30wJGkuaKZ5xRh9TVvt+PE8i5qqjIteFuLOtwm+GsHkajMP5YKtZ0VQUYdKYO3uuJqqu20im0se+LQ460RZu8IQIyR9iYi5TojMwlK4VpFIbn4/9LrKRCgHWNcokJV6QdV6JDTIc08rjGhtOMVCs5iRV8JZs/BDdsTFUOCwsywaHWDJay1VSHf2uvwviDSk+z2Ws5fxiDSjfi2WLqq71Wr9ubHXIbRAvQ8hbnDO/hbZxqVkpQjglq7dBNNP5NKVUn6hVuVFHjOBOAVqWFgrJrmsMQoaIS7KiabUJNDpBJSaYNPgrDbdj1jopKa6cyQaWkbmy3aw35r9qwdNnxqOKqKB0oNjfKSkGcJs1akZQbYE5MEVCGIXCGN0sNZQ6Xb9NlbdE26cJCiSHgHWEJvw0omDAtJVVp7ODGFUazqj4gg2ZIdE6AzHjLwhAjj7YDvg3Oj7oR4s9HrZPjRfi73gvvpXfoRd5r78T75J15A4/53/2f/i//d9AN+sEwGM2lO/6i57m3cYLsD2LCL1o=</latexit><latexit sha1_base64="mKMz2l4Z7VEEf7X/wJ+yUgIQ8UE=">AAADrHicdVLLbtNAFLVrHsW8WliyGZFUKlIUxd3QDaISD9FdEUlbKY6q8fjaGXUeZmZMGln+Mr6EJVv4Ca7zIklhJMvH556r43vmJoXg1vV6P/yd4M7de/d3H4QPHz1+8nRv/9m51aVhMGBaaHOZUAuCKxg47gRcFgaoTARcJNfvmvrFNzCWa9V30wJGkuaKZ5xRh9TVvt+PE8i5qqjIteFuLOtwm+GsHkajMP5YKtZ0VQUYdKYO3uuJqqu20im0se+LQ460RZu8IQIyR9iYi5TojMwlK4VpFIbn4/9LrKRCgHWNcokJV6QdV6JDTIc08rjGhtOMVCs5iRV8JZs/BDdsTFUOCwsywaHWDJay1VSHf2uvwviDSk+z2Ws5fxiDSjfi2WLqq71Wr9ubHXIbRAvQ8hbnDO/hbZxqVkpQjglq7dBNNP5NKVUn6hVuVFHjOBOAVqWFgrJrmsMQoaIS7KiabUJNDpBJSaYNPgrDbdj1jopKa6cyQaWkbmy3aw35r9qwdNnxqOKqKB0oNjfKSkGcJs1akZQbYE5MEVCGIXCGN0sNZQ6Xb9NlbdE26cJCiSHgHWEJvw0omDAtJVVp7ODGFUazqj4gg2ZIdE6AzHjLwhAjj7YDvg3Oj7oR4s9HrZPjRfi73gvvpXfoRd5r78T75J15A4/53/2f/i//d9AN+sEwGM2lO/6i57m3cYLsD2LCL1o=</latexit><latexit sha1_base64="mKMz2l4Z7VEEf7X/wJ+yUgIQ8UE=">AAADrHicdVLLbtNAFLVrHsW8WliyGZFUKlIUxd3QDaISD9FdEUlbKY6q8fjaGXUeZmZMGln+Mr6EJVv4Ca7zIklhJMvH556r43vmJoXg1vV6P/yd4M7de/d3H4QPHz1+8nRv/9m51aVhMGBaaHOZUAuCKxg47gRcFgaoTARcJNfvmvrFNzCWa9V30wJGkuaKZ5xRh9TVvt+PE8i5qqjIteFuLOtwm+GsHkajMP5YKtZ0VQUYdKYO3uuJqqu20im0se+LQ460RZu8IQIyR9iYi5TojMwlK4VpFIbn4/9LrKRCgHWNcokJV6QdV6JDTIc08rjGhtOMVCs5iRV8JZs/BDdsTFUOCwsywaHWDJay1VSHf2uvwviDSk+z2Ws5fxiDSjfi2WLqq71Wr9ubHXIbRAvQ8hbnDO/hbZxqVkpQjglq7dBNNP5NKVUn6hVuVFHjOBOAVqWFgrJrmsMQoaIS7KiabUJNDpBJSaYNPgrDbdj1jopKa6cyQaWkbmy3aw35r9qwdNnxqOKqKB0oNjfKSkGcJs1akZQbYE5MEVCGIXCGN0sNZQ6Xb9NlbdE26cJCiSHgHWEJvw0omDAtJVVp7ODGFUazqj4gg2ZIdE6AzHjLwhAjj7YDvg3Oj7oR4s9HrZPjRfi73gvvpXfoRd5r78T75J15A4/53/2f/i//d9AN+sEwGM2lO/6i57m3cYLsD2LCL1o=</latexit><latexit sha1_base64="mKMz2l4Z7VEEf7X/wJ+yUgIQ8UE=">AAADrHicdVLLbtNAFLVrHsW8WliyGZFUKlIUxd3QDaISD9FdEUlbKY6q8fjaGXUeZmZMGln+Mr6EJVv4Ca7zIklhJMvH556r43vmJoXg1vV6P/yd4M7de/d3H4QPHz1+8nRv/9m51aVhMGBaaHOZUAuCKxg47gRcFgaoTARcJNfvmvrFNzCWa9V30wJGkuaKZ5xRh9TVvt+PE8i5qqjIteFuLOtwm+GsHkajMP5YKtZ0VQUYdKYO3uuJqqu20im0se+LQ460RZu8IQIyR9iYi5TojMwlK4VpFIbn4/9LrKRCgHWNcokJV6QdV6JDTIc08rjGhtOMVCs5iRV8JZs/BDdsTFUOCwsywaHWDJay1VSHf2uvwviDSk+z2Ws5fxiDSjfi2WLqq71Wr9ubHXIbRAvQ8hbnDO/hbZxqVkpQjglq7dBNNP5NKVUn6hVuVFHjOBOAVqWFgrJrmsMQoaIS7KiabUJNDpBJSaYNPgrDbdj1jopKa6cyQaWkbmy3aw35r9qwdNnxqOKqKB0oNjfKSkGcJs1akZQbYE5MEVCGIXCGN0sNZQ6Xb9NlbdE26cJCiSHgHWEJvw0omDAtJVVp7ODGFUazqj4gg2ZIdE6AzHjLwhAjj7YDvg3Oj7oR4s9HrZPjRfi73gvvpXfoRd5r78T75J15A4/53/2f/i//d9AN+sEwGM2lO/6i57m3cYLsD2LCL1o=</latexit>
82 43 50 36
Broken heap
Calls: removeMin() 1
node
smallest
removeMin()
!10
3
1154
6294 4939
96 95 75
1: function percolateDown(node)2: l = left child of node3: r = right child of node4: smallest = smallest in {l, r, node}5: if smallest 6= node then6: exchange node with smallest7: percolate(smallest)8: end if9: end function
<latexit sha1_base64="mKMz2l4Z7VEEf7X/wJ+yUgIQ8UE=">AAADrHicdVLLbtNAFLVrHsW8WliyGZFUKlIUxd3QDaISD9FdEUlbKY6q8fjaGXUeZmZMGln+Mr6EJVv4Ca7zIklhJMvH556r43vmJoXg1vV6P/yd4M7de/d3H4QPHz1+8nRv/9m51aVhMGBaaHOZUAuCKxg47gRcFgaoTARcJNfvmvrFNzCWa9V30wJGkuaKZ5xRh9TVvt+PE8i5qqjIteFuLOtwm+GsHkajMP5YKtZ0VQUYdKYO3uuJqqu20im0se+LQ460RZu8IQIyR9iYi5TojMwlK4VpFIbn4/9LrKRCgHWNcokJV6QdV6JDTIc08rjGhtOMVCs5iRV8JZs/BDdsTFUOCwsywaHWDJay1VSHf2uvwviDSk+z2Ws5fxiDSjfi2WLqq71Wr9ubHXIbRAvQ8hbnDO/hbZxqVkpQjglq7dBNNP5NKVUn6hVuVFHjOBOAVqWFgrJrmsMQoaIS7KiabUJNDpBJSaYNPgrDbdj1jopKa6cyQaWkbmy3aw35r9qwdNnxqOKqKB0oNjfKSkGcJs1akZQbYE5MEVCGIXCGN0sNZQ6Xb9NlbdE26cJCiSHgHWEJvw0omDAtJVVp7ODGFUazqj4gg2ZIdE6AzHjLwhAjj7YDvg3Oj7oR4s9HrZPjRfi73gvvpXfoRd5r78T75J15A4/53/2f/i//d9AN+sEwGM2lO/6i57m3cYLsD2LCL1o=</latexit><latexit sha1_base64="mKMz2l4Z7VEEf7X/wJ+yUgIQ8UE=">AAADrHicdVLLbtNAFLVrHsW8WliyGZFUKlIUxd3QDaISD9FdEUlbKY6q8fjaGXUeZmZMGln+Mr6EJVv4Ca7zIklhJMvH556r43vmJoXg1vV6P/yd4M7de/d3H4QPHz1+8nRv/9m51aVhMGBaaHOZUAuCKxg47gRcFgaoTARcJNfvmvrFNzCWa9V30wJGkuaKZ5xRh9TVvt+PE8i5qqjIteFuLOtwm+GsHkajMP5YKtZ0VQUYdKYO3uuJqqu20im0se+LQ460RZu8IQIyR9iYi5TojMwlK4VpFIbn4/9LrKRCgHWNcokJV6QdV6JDTIc08rjGhtOMVCs5iRV8JZs/BDdsTFUOCwsywaHWDJay1VSHf2uvwviDSk+z2Ws5fxiDSjfi2WLqq71Wr9ubHXIbRAvQ8hbnDO/hbZxqVkpQjglq7dBNNP5NKVUn6hVuVFHjOBOAVqWFgrJrmsMQoaIS7KiabUJNDpBJSaYNPgrDbdj1jopKa6cyQaWkbmy3aw35r9qwdNnxqOKqKB0oNjfKSkGcJs1akZQbYE5MEVCGIXCGN0sNZQ6Xb9NlbdE26cJCiSHgHWEJvw0omDAtJVVp7ODGFUazqj4gg2ZIdE6AzHjLwhAjj7YDvg3Oj7oR4s9HrZPjRfi73gvvpXfoRd5r78T75J15A4/53/2f/i//d9AN+sEwGM2lO/6i57m3cYLsD2LCL1o=</latexit><latexit sha1_base64="mKMz2l4Z7VEEf7X/wJ+yUgIQ8UE=">AAADrHicdVLLbtNAFLVrHsW8WliyGZFUKlIUxd3QDaISD9FdEUlbKY6q8fjaGXUeZmZMGln+Mr6EJVv4Ca7zIklhJMvH556r43vmJoXg1vV6P/yd4M7de/d3H4QPHz1+8nRv/9m51aVhMGBaaHOZUAuCKxg47gRcFgaoTARcJNfvmvrFNzCWa9V30wJGkuaKZ5xRh9TVvt+PE8i5qqjIteFuLOtwm+GsHkajMP5YKtZ0VQUYdKYO3uuJqqu20im0se+LQ460RZu8IQIyR9iYi5TojMwlK4VpFIbn4/9LrKRCgHWNcokJV6QdV6JDTIc08rjGhtOMVCs5iRV8JZs/BDdsTFUOCwsywaHWDJay1VSHf2uvwviDSk+z2Ws5fxiDSjfi2WLqq71Wr9ubHXIbRAvQ8hbnDO/hbZxqVkpQjglq7dBNNP5NKVUn6hVuVFHjOBOAVqWFgrJrmsMQoaIS7KiabUJNDpBJSaYNPgrDbdj1jopKa6cyQaWkbmy3aw35r9qwdNnxqOKqKB0oNjfKSkGcJs1akZQbYE5MEVCGIXCGN0sNZQ6Xb9NlbdE26cJCiSHgHWEJvw0omDAtJVVp7ODGFUazqj4gg2ZIdE6AzHjLwhAjj7YDvg3Oj7oR4s9HrZPjRfi73gvvpXfoRd5r78T75J15A4/53/2f/i//d9AN+sEwGM2lO/6i57m3cYLsD2LCL1o=</latexit><latexit sha1_base64="mKMz2l4Z7VEEf7X/wJ+yUgIQ8UE=">AAADrHicdVLLbtNAFLVrHsW8WliyGZFUKlIUxd3QDaISD9FdEUlbKY6q8fjaGXUeZmZMGln+Mr6EJVv4Ca7zIklhJMvH556r43vmJoXg1vV6P/yd4M7de/d3H4QPHz1+8nRv/9m51aVhMGBaaHOZUAuCKxg47gRcFgaoTARcJNfvmvrFNzCWa9V30wJGkuaKZ5xRh9TVvt+PE8i5qqjIteFuLOtwm+GsHkajMP5YKtZ0VQUYdKYO3uuJqqu20im0se+LQ460RZu8IQIyR9iYi5TojMwlK4VpFIbn4/9LrKRCgHWNcokJV6QdV6JDTIc08rjGhtOMVCs5iRV8JZs/BDdsTFUOCwsywaHWDJay1VSHf2uvwviDSk+z2Ws5fxiDSjfi2WLqq71Wr9ubHXIbRAvQ8hbnDO/hbZxqVkpQjglq7dBNNP5NKVUn6hVuVFHjOBOAVqWFgrJrmsMQoaIS7KiabUJNDpBJSaYNPgrDbdj1jopKa6cyQaWkbmy3aw35r9qwdNnxqOKqKB0oNjfKSkGcJs1akZQbYE5MEVCGIXCGN0sNZQ6Xb9NlbdE26cJCiSHgHWEJvw0omDAtJVVp7ODGFUazqj4gg2ZIdE6AzHjLwhAjj7YDvg3Oj7oR4s9HrZPjRfi73gvvpXfoRd5r78T75J15A4/53/2f/i//d9AN+sEwGM2lO/6i57m3cYLsD2LCL1o=</latexit>
82 43 50 36
Broken heap
Calls: removeMin() 1
node
smallestpercolateDown(smallest)
removeMin()
!11
3
1154
6294 4939
96 95 75
1: function percolateDown(node)2: l = left child of node3: r = right child of node4: smallest = smallest in {l, r, node}5: if smallest 6= node then6: exchange node with smallest7: percolate(smallest)8: end if9: end function
<latexit sha1_base64="mKMz2l4Z7VEEf7X/wJ+yUgIQ8UE=">AAADrHicdVLLbtNAFLVrHsW8WliyGZFUKlIUxd3QDaISD9FdEUlbKY6q8fjaGXUeZmZMGln+Mr6EJVv4Ca7zIklhJMvH556r43vmJoXg1vV6P/yd4M7de/d3H4QPHz1+8nRv/9m51aVhMGBaaHOZUAuCKxg47gRcFgaoTARcJNfvmvrFNzCWa9V30wJGkuaKZ5xRh9TVvt+PE8i5qqjIteFuLOtwm+GsHkajMP5YKtZ0VQUYdKYO3uuJqqu20im0se+LQ460RZu8IQIyR9iYi5TojMwlK4VpFIbn4/9LrKRCgHWNcokJV6QdV6JDTIc08rjGhtOMVCs5iRV8JZs/BDdsTFUOCwsywaHWDJay1VSHf2uvwviDSk+z2Ws5fxiDSjfi2WLqq71Wr9ubHXIbRAvQ8hbnDO/hbZxqVkpQjglq7dBNNP5NKVUn6hVuVFHjOBOAVqWFgrJrmsMQoaIS7KiabUJNDpBJSaYNPgrDbdj1jopKa6cyQaWkbmy3aw35r9qwdNnxqOKqKB0oNjfKSkGcJs1akZQbYE5MEVCGIXCGN0sNZQ6Xb9NlbdE26cJCiSHgHWEJvw0omDAtJVVp7ODGFUazqj4gg2ZIdE6AzHjLwhAjj7YDvg3Oj7oR4s9HrZPjRfi73gvvpXfoRd5r78T75J15A4/53/2f/i//d9AN+sEwGM2lO/6i57m3cYLsD2LCL1o=</latexit><latexit sha1_base64="mKMz2l4Z7VEEf7X/wJ+yUgIQ8UE=">AAADrHicdVLLbtNAFLVrHsW8WliyGZFUKlIUxd3QDaISD9FdEUlbKY6q8fjaGXUeZmZMGln+Mr6EJVv4Ca7zIklhJMvH556r43vmJoXg1vV6P/yd4M7de/d3H4QPHz1+8nRv/9m51aVhMGBaaHOZUAuCKxg47gRcFgaoTARcJNfvmvrFNzCWa9V30wJGkuaKZ5xRh9TVvt+PE8i5qqjIteFuLOtwm+GsHkajMP5YKtZ0VQUYdKYO3uuJqqu20im0se+LQ460RZu8IQIyR9iYi5TojMwlK4VpFIbn4/9LrKRCgHWNcokJV6QdV6JDTIc08rjGhtOMVCs5iRV8JZs/BDdsTFUOCwsywaHWDJay1VSHf2uvwviDSk+z2Ws5fxiDSjfi2WLqq71Wr9ubHXIbRAvQ8hbnDO/hbZxqVkpQjglq7dBNNP5NKVUn6hVuVFHjOBOAVqWFgrJrmsMQoaIS7KiabUJNDpBJSaYNPgrDbdj1jopKa6cyQaWkbmy3aw35r9qwdNnxqOKqKB0oNjfKSkGcJs1akZQbYE5MEVCGIXCGN0sNZQ6Xb9NlbdE26cJCiSHgHWEJvw0omDAtJVVp7ODGFUazqj4gg2ZIdE6AzHjLwhAjj7YDvg3Oj7oR4s9HrZPjRfi73gvvpXfoRd5r78T75J15A4/53/2f/i//d9AN+sEwGM2lO/6i57m3cYLsD2LCL1o=</latexit><latexit sha1_base64="mKMz2l4Z7VEEf7X/wJ+yUgIQ8UE=">AAADrHicdVLLbtNAFLVrHsW8WliyGZFUKlIUxd3QDaISD9FdEUlbKY6q8fjaGXUeZmZMGln+Mr6EJVv4Ca7zIklhJMvH556r43vmJoXg1vV6P/yd4M7de/d3H4QPHz1+8nRv/9m51aVhMGBaaHOZUAuCKxg47gRcFgaoTARcJNfvmvrFNzCWa9V30wJGkuaKZ5xRh9TVvt+PE8i5qqjIteFuLOtwm+GsHkajMP5YKtZ0VQUYdKYO3uuJqqu20im0se+LQ460RZu8IQIyR9iYi5TojMwlK4VpFIbn4/9LrKRCgHWNcokJV6QdV6JDTIc08rjGhtOMVCs5iRV8JZs/BDdsTFUOCwsywaHWDJay1VSHf2uvwviDSk+z2Ws5fxiDSjfi2WLqq71Wr9ubHXIbRAvQ8hbnDO/hbZxqVkpQjglq7dBNNP5NKVUn6hVuVFHjOBOAVqWFgrJrmsMQoaIS7KiabUJNDpBJSaYNPgrDbdj1jopKa6cyQaWkbmy3aw35r9qwdNnxqOKqKB0oNjfKSkGcJs1akZQbYE5MEVCGIXCGN0sNZQ6Xb9NlbdE26cJCiSHgHWEJvw0omDAtJVVp7ODGFUazqj4gg2ZIdE6AzHjLwhAjj7YDvg3Oj7oR4s9HrZPjRfi73gvvpXfoRd5r78T75J15A4/53/2f/i//d9AN+sEwGM2lO/6i57m3cYLsD2LCL1o=</latexit><latexit sha1_base64="mKMz2l4Z7VEEf7X/wJ+yUgIQ8UE=">AAADrHicdVLLbtNAFLVrHsW8WliyGZFUKlIUxd3QDaISD9FdEUlbKY6q8fjaGXUeZmZMGln+Mr6EJVv4Ca7zIklhJMvH556r43vmJoXg1vV6P/yd4M7de/d3H4QPHz1+8nRv/9m51aVhMGBaaHOZUAuCKxg47gRcFgaoTARcJNfvmvrFNzCWa9V30wJGkuaKZ5xRh9TVvt+PE8i5qqjIteFuLOtwm+GsHkajMP5YKtZ0VQUYdKYO3uuJqqu20im0se+LQ460RZu8IQIyR9iYi5TojMwlK4VpFIbn4/9LrKRCgHWNcokJV6QdV6JDTIc08rjGhtOMVCs5iRV8JZs/BDdsTFUOCwsywaHWDJay1VSHf2uvwviDSk+z2Ws5fxiDSjfi2WLqq71Wr9ubHXIbRAvQ8hbnDO/hbZxqVkpQjglq7dBNNP5NKVUn6hVuVFHjOBOAVqWFgrJrmsMQoaIS7KiabUJNDpBJSaYNPgrDbdj1jopKa6cyQaWkbmy3aw35r9qwdNnxqOKqKB0oNjfKSkGcJs1akZQbYE5MEVCGIXCGN0sNZQ6Xb9NlbdE26cJCiSHgHWEJvw0omDAtJVVp7ODGFUazqj4gg2ZIdE6AzHjLwhAjj7YDvg3Oj7oR4s9HrZPjRfi73gvvpXfoRd5r78T75J15A4/53/2f/i//d9AN+sEwGM2lO/6i57m3cYLsD2LCL1o=</latexit>
82 43 50 36
Broken heap
Calls: removeMin() 1
node
smallest
removeMin()
!12
3
1154
6294 3639
96 95 75
1: function percolateDown(node)2: l = left child of node3: r = right child of node4: smallest = smallest in {l, r, node}5: if smallest 6= node then6: exchange node with smallest7: percolate(smallest)8: end if9: end function
<latexit sha1_base64="mKMz2l4Z7VEEf7X/wJ+yUgIQ8UE=">AAADrHicdVLLbtNAFLVrHsW8WliyGZFUKlIUxd3QDaISD9FdEUlbKY6q8fjaGXUeZmZMGln+Mr6EJVv4Ca7zIklhJMvH556r43vmJoXg1vV6P/yd4M7de/d3H4QPHz1+8nRv/9m51aVhMGBaaHOZUAuCKxg47gRcFgaoTARcJNfvmvrFNzCWa9V30wJGkuaKZ5xRh9TVvt+PE8i5qqjIteFuLOtwm+GsHkajMP5YKtZ0VQUYdKYO3uuJqqu20im0se+LQ460RZu8IQIyR9iYi5TojMwlK4VpFIbn4/9LrKRCgHWNcokJV6QdV6JDTIc08rjGhtOMVCs5iRV8JZs/BDdsTFUOCwsywaHWDJay1VSHf2uvwviDSk+z2Ws5fxiDSjfi2WLqq71Wr9ubHXIbRAvQ8hbnDO/hbZxqVkpQjglq7dBNNP5NKVUn6hVuVFHjOBOAVqWFgrJrmsMQoaIS7KiabUJNDpBJSaYNPgrDbdj1jopKa6cyQaWkbmy3aw35r9qwdNnxqOKqKB0oNjfKSkGcJs1akZQbYE5MEVCGIXCGN0sNZQ6Xb9NlbdE26cJCiSHgHWEJvw0omDAtJVVp7ODGFUazqj4gg2ZIdE6AzHjLwhAjj7YDvg3Oj7oR4s9HrZPjRfi73gvvpXfoRd5r78T75J15A4/53/2f/i//d9AN+sEwGM2lO/6i57m3cYLsD2LCL1o=</latexit><latexit sha1_base64="mKMz2l4Z7VEEf7X/wJ+yUgIQ8UE=">AAADrHicdVLLbtNAFLVrHsW8WliyGZFUKlIUxd3QDaISD9FdEUlbKY6q8fjaGXUeZmZMGln+Mr6EJVv4Ca7zIklhJMvH556r43vmJoXg1vV6P/yd4M7de/d3H4QPHz1+8nRv/9m51aVhMGBaaHOZUAuCKxg47gRcFgaoTARcJNfvmvrFNzCWa9V30wJGkuaKZ5xRh9TVvt+PE8i5qqjIteFuLOtwm+GsHkajMP5YKtZ0VQUYdKYO3uuJqqu20im0se+LQ460RZu8IQIyR9iYi5TojMwlK4VpFIbn4/9LrKRCgHWNcokJV6QdV6JDTIc08rjGhtOMVCs5iRV8JZs/BDdsTFUOCwsywaHWDJay1VSHf2uvwviDSk+z2Ws5fxiDSjfi2WLqq71Wr9ubHXIbRAvQ8hbnDO/hbZxqVkpQjglq7dBNNP5NKVUn6hVuVFHjOBOAVqWFgrJrmsMQoaIS7KiabUJNDpBJSaYNPgrDbdj1jopKa6cyQaWkbmy3aw35r9qwdNnxqOKqKB0oNjfKSkGcJs1akZQbYE5MEVCGIXCGN0sNZQ6Xb9NlbdE26cJCiSHgHWEJvw0omDAtJVVp7ODGFUazqj4gg2ZIdE6AzHjLwhAjj7YDvg3Oj7oR4s9HrZPjRfi73gvvpXfoRd5r78T75J15A4/53/2f/i//d9AN+sEwGM2lO/6i57m3cYLsD2LCL1o=</latexit><latexit sha1_base64="mKMz2l4Z7VEEf7X/wJ+yUgIQ8UE=">AAADrHicdVLLbtNAFLVrHsW8WliyGZFUKlIUxd3QDaISD9FdEUlbKY6q8fjaGXUeZmZMGln+Mr6EJVv4Ca7zIklhJMvH556r43vmJoXg1vV6P/yd4M7de/d3H4QPHz1+8nRv/9m51aVhMGBaaHOZUAuCKxg47gRcFgaoTARcJNfvmvrFNzCWa9V30wJGkuaKZ5xRh9TVvt+PE8i5qqjIteFuLOtwm+GsHkajMP5YKtZ0VQUYdKYO3uuJqqu20im0se+LQ460RZu8IQIyR9iYi5TojMwlK4VpFIbn4/9LrKRCgHWNcokJV6QdV6JDTIc08rjGhtOMVCs5iRV8JZs/BDdsTFUOCwsywaHWDJay1VSHf2uvwviDSk+z2Ws5fxiDSjfi2WLqq71Wr9ubHXIbRAvQ8hbnDO/hbZxqVkpQjglq7dBNNP5NKVUn6hVuVFHjOBOAVqWFgrJrmsMQoaIS7KiabUJNDpBJSaYNPgrDbdj1jopKa6cyQaWkbmy3aw35r9qwdNnxqOKqKB0oNjfKSkGcJs1akZQbYE5MEVCGIXCGN0sNZQ6Xb9NlbdE26cJCiSHgHWEJvw0omDAtJVVp7ODGFUazqj4gg2ZIdE6AzHjLwhAjj7YDvg3Oj7oR4s9HrZPjRfi73gvvpXfoRd5r78T75J15A4/53/2f/i//d9AN+sEwGM2lO/6i57m3cYLsD2LCL1o=</latexit><latexit sha1_base64="mKMz2l4Z7VEEf7X/wJ+yUgIQ8UE=">AAADrHicdVLLbtNAFLVrHsW8WliyGZFUKlIUxd3QDaISD9FdEUlbKY6q8fjaGXUeZmZMGln+Mr6EJVv4Ca7zIklhJMvH556r43vmJoXg1vV6P/yd4M7de/d3H4QPHz1+8nRv/9m51aVhMGBaaHOZUAuCKxg47gRcFgaoTARcJNfvmvrFNzCWa9V30wJGkuaKZ5xRh9TVvt+PE8i5qqjIteFuLOtwm+GsHkajMP5YKtZ0VQUYdKYO3uuJqqu20im0se+LQ460RZu8IQIyR9iYi5TojMwlK4VpFIbn4/9LrKRCgHWNcokJV6QdV6JDTIc08rjGhtOMVCs5iRV8JZs/BDdsTFUOCwsywaHWDJay1VSHf2uvwviDSk+z2Ws5fxiDSjfi2WLqq71Wr9ubHXIbRAvQ8hbnDO/hbZxqVkpQjglq7dBNNP5NKVUn6hVuVFHjOBOAVqWFgrJrmsMQoaIS7KiabUJNDpBJSaYNPgrDbdj1jopKa6cyQaWkbmy3aw35r9qwdNnxqOKqKB0oNjfKSkGcJs1akZQbYE5MEVCGIXCGN0sNZQ6Xb9NlbdE26cJCiSHgHWEJvw0omDAtJVVp7ODGFUazqj4gg2ZIdE6AzHjLwhAjj7YDvg3Oj7oR4s9HrZPjRfi73gvvpXfoRd5r78T75J15A4/53/2f/i//d9AN+sEwGM2lO/6i57m3cYLsD2LCL1o=</latexit>
82 43 50 49
Calls: removeMin() 1
node
smallest
min-heappercolateDown(smallest)
removeMin()
3
1154
6294 3639
96 95 75 82 43 50 49
node
smallest
min-heappercolateDown(smallest)
function removeMinlast = last node in the treeminvalue = rootswap root with lastpercolateDown(root)return minvalue
end function<latexit sha1_base64="0oZpHWbxCd26cpWZMvf2MmWbEhw=">AAADVnicbVLbbhMxEPUmlJZwS+GRF4ukUpFQlfSFviAqcREvSEWQtlISRV7vJLHqy8oeJ0SrfAGv8G/wM8BsLtCkjLTa43NmPBdPmmsVsNX6mVSqt3Zu7+7dqd29d//Bw/r+o/PgopfQkU47f5mKAFpZ6KBCDZe5B2FSDRfp1etSv5iAD8rZzzjLoW/EyKqhkgKJGtR/91IYKVsIPXJe4djMa9uMksS9i1aWEYUH4ybwQdl5QfQnFAi8qUXAJn/Jyz+3LgOuLMcxcPQAf72MshOhI5Cjdw6bayFMRc6bC4pPKePqvrWcg6c+Cb1xU3u49Hu2Fj1g9Pbf3RT11mbrams9sNlWJxvMfFBvtI5aC+M3QXsFGmxlZ4P95FUvczIasCipztDFqaP6orHP260c+4XwqKQGShUD5EJeiRF0CVphIPSLxZvN+QExGR86T59FvmCvRxTChDAzKXkageOwrZXk/7RuxOFJv1A2jwhWLhMNo+boeLkAPFMeJOoZASFpCEpyORZeSKQ12cxybSc26TxApCHQQ5NEZw8WptIZI2zWQ/iCuXeymB/wTtkkZU6BL/ggazUaeXt7wDfB+fFRm/DH48bpyWr4e+wJe8oOWZu9YKfsPTtjHSYTSL4m35LvlR+VX9Wd6u7StZKsYh6zDavW/wDtWhQE</latexit><latexit sha1_base64="0oZpHWbxCd26cpWZMvf2MmWbEhw=">AAADVnicbVLbbhMxEPUmlJZwS+GRF4ukUpFQlfSFviAqcREvSEWQtlISRV7vJLHqy8oeJ0SrfAGv8G/wM8BsLtCkjLTa43NmPBdPmmsVsNX6mVSqt3Zu7+7dqd29d//Bw/r+o/PgopfQkU47f5mKAFpZ6KBCDZe5B2FSDRfp1etSv5iAD8rZzzjLoW/EyKqhkgKJGtR/91IYKVsIPXJe4djMa9uMksS9i1aWEYUH4ybwQdl5QfQnFAi8qUXAJn/Jyz+3LgOuLMcxcPQAf72MshOhI5Cjdw6bayFMRc6bC4pPKePqvrWcg6c+Cb1xU3u49Hu2Fj1g9Pbf3RT11mbrams9sNlWJxvMfFBvtI5aC+M3QXsFGmxlZ4P95FUvczIasCipztDFqaP6orHP260c+4XwqKQGShUD5EJeiRF0CVphIPSLxZvN+QExGR86T59FvmCvRxTChDAzKXkageOwrZXk/7RuxOFJv1A2jwhWLhMNo+boeLkAPFMeJOoZASFpCEpyORZeSKQ12cxybSc26TxApCHQQ5NEZw8WptIZI2zWQ/iCuXeymB/wTtkkZU6BL/ggazUaeXt7wDfB+fFRm/DH48bpyWr4e+wJe8oOWZu9YKfsPTtjHSYTSL4m35LvlR+VX9Wd6u7StZKsYh6zDavW/wDtWhQE</latexit><latexit sha1_base64="0oZpHWbxCd26cpWZMvf2MmWbEhw=">AAADVnicbVLbbhMxEPUmlJZwS+GRF4ukUpFQlfSFviAqcREvSEWQtlISRV7vJLHqy8oeJ0SrfAGv8G/wM8BsLtCkjLTa43NmPBdPmmsVsNX6mVSqt3Zu7+7dqd29d//Bw/r+o/PgopfQkU47f5mKAFpZ6KBCDZe5B2FSDRfp1etSv5iAD8rZzzjLoW/EyKqhkgKJGtR/91IYKVsIPXJe4djMa9uMksS9i1aWEYUH4ybwQdl5QfQnFAi8qUXAJn/Jyz+3LgOuLMcxcPQAf72MshOhI5Cjdw6bayFMRc6bC4pPKePqvrWcg6c+Cb1xU3u49Hu2Fj1g9Pbf3RT11mbrams9sNlWJxvMfFBvtI5aC+M3QXsFGmxlZ4P95FUvczIasCipztDFqaP6orHP260c+4XwqKQGShUD5EJeiRF0CVphIPSLxZvN+QExGR86T59FvmCvRxTChDAzKXkageOwrZXk/7RuxOFJv1A2jwhWLhMNo+boeLkAPFMeJOoZASFpCEpyORZeSKQ12cxybSc26TxApCHQQ5NEZw8WptIZI2zWQ/iCuXeymB/wTtkkZU6BL/ggazUaeXt7wDfB+fFRm/DH48bpyWr4e+wJe8oOWZu9YKfsPTtjHSYTSL4m35LvlR+VX9Wd6u7StZKsYh6zDavW/wDtWhQE</latexit><latexit sha1_base64="0oZpHWbxCd26cpWZMvf2MmWbEhw=">AAADVnicbVLbbhMxEPUmlJZwS+GRF4ukUpFQlfSFviAqcREvSEWQtlISRV7vJLHqy8oeJ0SrfAGv8G/wM8BsLtCkjLTa43NmPBdPmmsVsNX6mVSqt3Zu7+7dqd29d//Bw/r+o/PgopfQkU47f5mKAFpZ6KBCDZe5B2FSDRfp1etSv5iAD8rZzzjLoW/EyKqhkgKJGtR/91IYKVsIPXJe4djMa9uMksS9i1aWEYUH4ybwQdl5QfQnFAi8qUXAJn/Jyz+3LgOuLMcxcPQAf72MshOhI5Cjdw6bayFMRc6bC4pPKePqvrWcg6c+Cb1xU3u49Hu2Fj1g9Pbf3RT11mbrams9sNlWJxvMfFBvtI5aC+M3QXsFGmxlZ4P95FUvczIasCipztDFqaP6orHP260c+4XwqKQGShUD5EJeiRF0CVphIPSLxZvN+QExGR86T59FvmCvRxTChDAzKXkageOwrZXk/7RuxOFJv1A2jwhWLhMNo+boeLkAPFMeJOoZASFpCEpyORZeSKQ12cxybSc26TxApCHQQ5NEZw8WptIZI2zWQ/iCuXeymB/wTtkkZU6BL/ggazUaeXt7wDfB+fFRm/DH48bpyWr4e+wJe8oOWZu9YKfsPTtjHSYTSL4m35LvlR+VX9Wd6u7StZKsYh6zDavW/wDtWhQE</latexit>
O(n ) + c1 + O(n log n ) = O(n )
Runtime of removeMin():
How can we do better?
Binary heap: Array implementation
!14Indices 0 1 2 3 4 5 6 7 8 9 10 11 12
1
354
6294 1139
96 95 75 82 43 50 36 49
13 14 15
1
354
6294 1139
96 95 75 82 43 50 36 49
Binary heap: Array implementation
!15Indices 0 1 2 3 4 5 6 7 8 9 10 11 12
1
354
6294 1139
96 95 75 82 43 50 36 49
13 14 15
1
354
6294 1139
96 95 75 82 43 50 36 49
Binary heap: Array implementation
!16Indices 0 1 2 3 4 5 6 7 8 9 10 11 12
1
354
6294 1139
96 95 75 82 43 50 36 49
13 14 15
1 354
6294 1139
96 95 75 82 43 50 36 49
Binary heap: Array implementation
!17Indices 0 1 2 3 4 5 6 7 8 9 10 11 12
1
354
6294 1139
96 95 75 82 43 50 36 49
13 14 15
1 354 6294 1139
96 95 75 82 43 50 36 49
Binary heap: Array implementation
!18Indices 0 1 2 3 4 5 6 7 8 9 10 11 12
1
354
6294 1139
96 95 75 82 43 50 36 49
13 14 15
1 354 6294 1139 96 95 75 82 43 50 36 49
Binary heap: Array implementation
!19Indices 0 1 2 3 4 5 6 7 8 9 10 11 12
1
354
6294 1139
96 95 75 82 43 50 36 49
13 14 15
1 354 6294 1139 96 95 75 82 43 50 36 49
With array starting at index 1
leftCh ild(i) = 2irig h tCh ild(i) = 2i + 1
paren t(i) = ⌊ i2 ⌋
Binary heap: Array implementation
!20Indices 0 1 2 3 4 5 6 7 8 9 10 11 12
1
354
6294 1139
96 95 75 82 43 50 36 49
13 14 15
With array starting at index 0
leftCh ild(i) = 2i + 1rig h tCh ild(i) = 2i + 2
paren t(i) = ⌊ i − 12 ⌋
1 354 6294 1139 96 95 75 82 43 50 36 49
Sorting
!21
- - Problem: Arrange items in a collection in a specified order. - - Lots of applications:
- lookup / search-merging sequences-data processing-Lots of sorting algorithms out there -Why study sorting?
Sorting
!22
1. Comparison Sorts - Order of elements determined by comparing them- Fastest comparison sort: - Elements should support compareTo()
2. Non-comparison Sorts - Order of elements determined by leveraging properties of input- Typical runtime: - Also called as Niche Sorts aka “linear sorts”
Types of sorting algorithms
!23
O(n log n )
O(n )
In this class we’ll focus on comparison sorts
Insertion sort
!24
0 1 2 3 4 5 6 7 8 9
2 3 6 7 5 1 4 10 2 8
https://visualgo.net/en/sorting
-Runtime:
-Stable:
- In-place:
Insertion sort
!25
0 1 2 3 4 5 6 7 8 9
2 3 6 7 5 1 4 10 2 8
for i = 0 to n docurrent = A[i]j = findNewIndex(current, i)shift elements from j to i� 1 by 1A[j] = current
end for<latexit sha1_base64="vZ+KHMRGcGPgdBfgoExBcAwJaDE=">AAADMnicbZJLb9NAEMfX5lXMoykcuaxIKhUJKrsCwQWpFQKBkFARpK2UWNF6PU623YfZXdMGK9+KLwM3hLjxIRinVtSkzGn8m9l5/MdZKYXzcfwjCK9cvXb9xtrN6NbtO3fXOxv3DpypLIc+N9LYo4w5kEJD3wsv4ai0wFQm4TA7edXED7+CdcLoz35aQqrYWItCcOYRjTp/hhmMha6ZHBsr/ETNolUiOLI3xtJa0Jc0pt5QjeSTZx5oj1fWgvYY2RuItLfgx0gKofMPcPpO53C21SY+puLRIstNROEpSFAYcbSwRuHLXtOiJ54kPZpNabIouTc4TrFqWwiLvNY5zhUNQecr4y6RWTTqdOPteG70spO0Tpe0tj/aCJ4Nc8OrZi4umXODJC59WjPrBZeAHSoHJeMnbAwDdDVT4NJ6fo8Z3USS0wIlKwxKM6cXX9RMOTdVGWYq5iduNdbA/8UGlS9epLXQZeVB8/NGRSUbvZrj0lxY4F5O0WEcdxec8gmzjHv8BZa7XLj3Mi4dVLi6yZst8Ru1hlNulGI6H3o486U1vJ5t0n6zJHbOgM6541EjdLIq62XnYGc7Qf/jTnf3aSv5GnlAHpItkpDnZJe8JfukT3jwPvgSfAvq8Hv4M/wV/j5PDYP2zX2yZOHff820Axk=</latexit><latexit sha1_base64="vZ+KHMRGcGPgdBfgoExBcAwJaDE=">AAADMnicbZJLb9NAEMfX5lXMoykcuaxIKhUJKrsCwQWpFQKBkFARpK2UWNF6PU623YfZXdMGK9+KLwM3hLjxIRinVtSkzGn8m9l5/MdZKYXzcfwjCK9cvXb9xtrN6NbtO3fXOxv3DpypLIc+N9LYo4w5kEJD3wsv4ai0wFQm4TA7edXED7+CdcLoz35aQqrYWItCcOYRjTp/hhmMha6ZHBsr/ETNolUiOLI3xtJa0Jc0pt5QjeSTZx5oj1fWgvYY2RuItLfgx0gKofMPcPpO53C21SY+puLRIstNROEpSFAYcbSwRuHLXtOiJ54kPZpNabIouTc4TrFqWwiLvNY5zhUNQecr4y6RWTTqdOPteG70spO0Tpe0tj/aCJ4Nc8OrZi4umXODJC59WjPrBZeAHSoHJeMnbAwDdDVT4NJ6fo8Z3USS0wIlKwxKM6cXX9RMOTdVGWYq5iduNdbA/8UGlS9epLXQZeVB8/NGRSUbvZrj0lxY4F5O0WEcdxec8gmzjHv8BZa7XLj3Mi4dVLi6yZst8Ru1hlNulGI6H3o486U1vJ5t0n6zJHbOgM6541EjdLIq62XnYGc7Qf/jTnf3aSv5GnlAHpItkpDnZJe8JfukT3jwPvgSfAvq8Hv4M/wV/j5PDYP2zX2yZOHff820Axk=</latexit><latexit sha1_base64="vZ+KHMRGcGPgdBfgoExBcAwJaDE=">AAADMnicbZJLb9NAEMfX5lXMoykcuaxIKhUJKrsCwQWpFQKBkFARpK2UWNF6PU623YfZXdMGK9+KLwM3hLjxIRinVtSkzGn8m9l5/MdZKYXzcfwjCK9cvXb9xtrN6NbtO3fXOxv3DpypLIc+N9LYo4w5kEJD3wsv4ai0wFQm4TA7edXED7+CdcLoz35aQqrYWItCcOYRjTp/hhmMha6ZHBsr/ETNolUiOLI3xtJa0Jc0pt5QjeSTZx5oj1fWgvYY2RuItLfgx0gKofMPcPpO53C21SY+puLRIstNROEpSFAYcbSwRuHLXtOiJ54kPZpNabIouTc4TrFqWwiLvNY5zhUNQecr4y6RWTTqdOPteG70spO0Tpe0tj/aCJ4Nc8OrZi4umXODJC59WjPrBZeAHSoHJeMnbAwDdDVT4NJ6fo8Z3USS0wIlKwxKM6cXX9RMOTdVGWYq5iduNdbA/8UGlS9epLXQZeVB8/NGRSUbvZrj0lxY4F5O0WEcdxec8gmzjHv8BZa7XLj3Mi4dVLi6yZst8Ru1hlNulGI6H3o486U1vJ5t0n6zJHbOgM6541EjdLIq62XnYGc7Qf/jTnf3aSv5GnlAHpItkpDnZJe8JfukT3jwPvgSfAvq8Hv4M/wV/j5PDYP2zX2yZOHff820Axk=</latexit><latexit sha1_base64="vZ+KHMRGcGPgdBfgoExBcAwJaDE=">AAADMnicbZJLb9NAEMfX5lXMoykcuaxIKhUJKrsCwQWpFQKBkFARpK2UWNF6PU623YfZXdMGK9+KLwM3hLjxIRinVtSkzGn8m9l5/MdZKYXzcfwjCK9cvXb9xtrN6NbtO3fXOxv3DpypLIc+N9LYo4w5kEJD3wsv4ai0wFQm4TA7edXED7+CdcLoz35aQqrYWItCcOYRjTp/hhmMha6ZHBsr/ETNolUiOLI3xtJa0Jc0pt5QjeSTZx5oj1fWgvYY2RuItLfgx0gKofMPcPpO53C21SY+puLRIstNROEpSFAYcbSwRuHLXtOiJ54kPZpNabIouTc4TrFqWwiLvNY5zhUNQecr4y6RWTTqdOPteG70spO0Tpe0tj/aCJ4Nc8OrZi4umXODJC59WjPrBZeAHSoHJeMnbAwDdDVT4NJ6fo8Z3USS0wIlKwxKM6cXX9RMOTdVGWYq5iduNdbA/8UGlS9epLXQZeVB8/NGRSUbvZrj0lxY4F5O0WEcdxec8gmzjHv8BZa7XLj3Mi4dVLi6yZst8Ru1hlNulGI6H3o486U1vJ5t0n6zJHbOgM6541EjdLIq62XnYGc7Qf/jTnf3aSv5GnlAHpItkpDnZJe8JfukT3jwPvgSfAvq8Hv4M/wV/j5PDYP2zX2yZOHff820Axk=</latexit>
-1. Run Floyd’s buildHeap -2. removeMin() n times
Heap sort
!26