Floyd’s buildHeap, Sorting · -Heap review and Array implementation of Heap -Floyd’s buildHeap...

Preview:

Citation preview

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 shri@cs.washington.edu

-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

Shrirang

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()

Shrirang
Shrirang

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

Shrirang
Shrirang
Shrirang
Shrirang
Shrirang

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)

Shrirang
Shrirang
Shrirang

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

Shrirang
Shrirang

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)

Shrirang
Shrirang

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

Shrirang
Shrirang

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)

Shrirang
Shrirang
Shrirang

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?

Shrirang
Shrirang
Shrirang

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

Shrirang
Shrirang
Shrirang
Shrirang

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

Shrirang
Shrirang

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

Shrirang
Shrirang

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 ⌋

Shrirang
Shrirang

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

Shrirang

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

Recommended