<snapdata remixID="15139915"><project name="Insertion Sort Walkthrough" app="Snap! 11.0.8, https://snap.berkeley.edu" version="2"><notes>Walkthrough goals:&#xD;- See the recursive insertion-sort structure clearly.&#xD;- Notice that the main sort block delegates the actual placement work to the helper insert block.&#xD;- Watch comparison count to measure how many placement checks the helper block performs.&#xD;&#xD;Suggested test:&#xD;- Blockify a random list such as [8, 3, 5, 1, 4, 7].&#xD;- Run generate and show random list length ... min ... max ..., then insertion sort ... and count comparisons in insertion sort ....</notes><thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAAOkklEQVR4AeydeXBVRRbGz3uQsMgS9lUIWwgETRSBCYvIMog6CMheWuA4NSNaIIWFxfxhWf4xTlEl5cJACVpolYUyU8owg8uASykFRNBxRAVkJyGAREMCmbCHZPI7TD+SRzaIj9x33wl8r/t29+17+jtf9X3d93a/YIn9GQN1yEBQ7M8YqEMGTIB1SL5dWqScAM+cOSMHDhyQvXv3eh5Hjhwx//mAgZAAN23aJLt27ZJAICD169e/4WjSpIkc/HqjfP3PldWiMP9nuXDhgnzxxRdy+PBhH7ghdpugAty5c6e0adNGEAGOvRacP39exXAt51RUNi4uTlp8/IyMy11dLfoVfKnXbNGihfbYseu+6G+5CrCoqEgdijD27NkjS5YskYyMDFm+fLmGS5cuDaW5vLfeeks++eQTeeWVV+Tbb7+VN954Q8u6cyhHfdRDWcKNGzfKd999J1u3bhXinPP4448Lt/5Lly5Ji4ZqTojVBhP+JPH3PR06LhuhbtCyZUv56quvymbVLG6lPMGAehzn05OBDz74QMaPHy+HDh0SeqXMzExp1qyZtGrVSrKysiQhIUF69eol27dvl9OnT+utulGjRhIfHy/Z2dmhc1q3bi2I44cffpCZM2dKbm6ufP/993Lw4EHZtm2b5OXlCdft37+/NG3aVOPhjJQU5kqgUfPwZD3GVoAIsUMT7SPqGAhiMWLAkWDWrFnak82YMUN69+4t3bt3V3Tr1k17qptvvllve7fffrt07txZevbsqaJs3769TJ48udw5+fn5cvfdd8uWLVu07MCBA/U2T71dunSRHj16aPndu3dXKMDinw9I0X/WYOJVwFaAsBHxVQUsISoYUAEOHz5cey8cCu666y7JyclRgXTt2lVDBDht2jRJS0sT0ijTsWNH6dOnj4qnb9++8tNPP2lZ8gHiqFevnpbv0KGDIN6UlBRJTU0Vzk1OTtbyfPfct3ePtL5vvsSPvoJgm55Sr3t6uTTyC1omh74yFBYWag8aFWybkVcxoALkVjtp0iQpnRDXnoreqSLwpb9t27ZSUV5t0xK7dZf85ImS3f3+anEqIUkQdMOGDWXKlClXNcoSoocBFSDmIsKRI0fq9ztujV4HvWd6ejqmG6KYgZAAXRsYaOyto4loJsEZETtbLIwIA56qNCRARrBMjwQCAWnQoIFwe7vRIRPgjL4///xzT5FkxkSOgaCrmp6PkWxxcbF+F6xJuGbN5REq3x0rKv/iiy/q9ExF+eTt2LFDGKSQz7QO4U033SSJiYnCyNjZZqF/GVABZpbO9XXq1EmFx9zaqlWrZNGiRTqqffnll3XCeeXKlfLCCy/Ik08+KYsXL5bXXntNKEsvSZnVq1fLww8/rJPXr7/+urz66qvSvHlzWbFihXz00Ufy3HPPCRPPy5Ytk8aNG+u1mA988803dTKb+UHqQoSAwY5/abeWOQZUgAiJHgxwG2RKhemWffv2yYgRI2TAgAEyePBgxbx582Tq1Kly5513ajpiuffee4Vpl2effVZGjRolzPcNGzZMyxBnrpA5wkGDBgkDHQY8Q4YMEcrcdtttMm7cOJ2aoS5sAExSOyMt9C8DKkAcXxa33nqrjB49WhAMYuS2yNOPO+64Q+gpmcNjlJxYeqtkHq5b6SQ1QmNimjgjVMojSkKmaCiflJSko+wTJ04IwqMs4uTWzxwhAxBnh38pt5aVZUAFSAKOp+fh9rj7nedl15LfleKRiCNvzTOh74FcHzscsMvgbwZUgDjcOZ9nut2y3pPk5helzZjZkjx7qaQtWPWLwNWT8tgyaTvmsdJrFEnfvM36rNldnxBgk7+pt9bBgAqQCA4HxIMBkWPpT0mHfoMlvnEzQRAgJ+uAfDxzgHw2PaVaFGa8J+fOndOXDnjWzHNh6jh69KjkFpyRvGBzOZz+Ry6nAxKuHQ7NtA9fM6ACdI5HIMT3N0iSLsmpIeHx4id5+/6dIUOaXpT01nGKEUMHy/DUPvKbuU/LiPSBmubyWp7J0VEyb7oAnjFTByEjZqZggg2byKH47iEBks/1Xehr5q1xyoAKkJhzOgLIDyaExMe7ggjI5VPWoeXEORLXqac0SintKbv0ccmhkLqYagHEqYNeccKECfp6FyPd3HqttTx5rgyhJtqH7xkI0kIc7uCOEQTgmF6LOGU4dijc+qFI6e1aSv/qNWtV+ln+P+UZSfNKFnHqyMzMlFOnTglPWkirCuVrsyM/MqACpGGIAzhBEHdgKob4TS3bOr1xihR89jc5vW29HHl6vOSv/YumuY9g/TjtRenlmHahXuoAx44dk4KCAs0nHZBeFqS5uiz0LwMhAeLw6tB/1D2Sv+AdOfz7ldXix5R7tJdDgICnIuH1I7jwNHfsL8qtNZUxoALE6YgBEAfEw7F1wzop+fMk6bDikWrRbse/9A1qnvUCNwqm7nBgXPi1KEO6wd8MqABpIg4HLu4Ewa2SdSKI6Ezez9IiPihxpfM0Dh3/sEiapQ4rl0ZeSdEFvcVyHqBuV2fZsERK/5VUDLE/3zOgAkQc4XAi4cnI8ePH9XZKmXBGCre+L3Ftu4Qn6zHlGQG7N12ok7SaQiuxD18zoAKkhYgDII6yx998842+NMD0icsj/woCcjEn68phmRjlGQWnpaVpqqufdOCOySReFqQZ/M+AChAxONBk4k4Mt9xyi64BYeljj7SBUj+stzu7Y7Oc3bGF08qhfuckCQQCcvLkSUUwGNRbsqvXhVyrMpSr0A58yYAKkJZVJAJEQroLE9p3kpyBU+X8hKeqRfZZahVdO4x4A4GACpD6HCjh4hWF5Buim4HqrFcB4nxEBogD4g7r169X8Xz54d+l5fuLpcE/nq8W7XP36NJJXt8CbjI7ISFBH73xTiDpXAsj3bVc6NLJM/iXARUgzcPhwMURAse8lBofHy/t2rWTkuJL8v8HHxRTtJqxUIAehH1wvksiDpjU5mVUXnLluDK48yz0NwMqQERQXFysvRxx4I4J2XmAx2ekXwsdlGcUzH4zxKkrHKSDitKv5VpWNjoZUAFiOiIoCycI3lpOTEykiJCvkTIf5w/tkPx1y8ukXI4G69XT8oyC2YqDc6lzzpw5Qg/IQngeyZVOA2o58sNxuSb79DMDKkDneARSNs4xQCgnS0ezqb++X04PmS6Fg6/geLCpFKTeUy6N/Pw2ScobLx+AQCCgPexLL70kY8eOFRYysfCI60npHyHXKhuWJtt/nzOgAqSNzvnEEcHZs2eFpZGILzs7W8Vz9tx5OTVwshT8aupVODVoimxq1DuUntOkk7DvIE9B9u/fL4HAZQFynYULFwr7w7B3DNcCpJcNscPgfwZCAsT5ZcE+fp9++qkwEc32bORdvHhRNy1i4yK2WmMROVMsjHBZUIRQ2d2A/QIpv27dOi1POY6dyFiExP6ALEQivTLUin47OSoYUAGGC6BNoFCKioqE3bAWLFig39GceHisxoaViIhtfenheN2KN16IM73Sr18/7TFZCee+P7rzOQ/xsSQzMzNTWgf+q0SF28CxZtiHrxlQASIcBAJobWrcUWkaV6Jvs9ADsqaDPMoxeGBReq9evYQ9BMljM0qWaj7wwAO6XRvLOCnPWmAe4bHhJccdOnTQnVERHyKUcwWSFncsJHDKOAQC4RM+WGbwGwNBGsQmlLz1Qq8DSBvx41+lJPegXCg8qVuhOWHwWlVWVpbeWklj51RCekEGKgiSKRvSuDUjQOrmmFs0o+qDe3ZKswsnJGn75ZdYuWY4bBd8vOB/qABZ88H3O267+/ftlXb3zZdeY38r01KaypimR2VEcNcvijFNjsjkPo2lz9hZUn/kPGGlHAJ1YOAzdOhQ/7NvLRQVIDzwfY9badfEbpKXPFEOdxt3Q3Ckx3jdLZXvi/SObA3CNsF8l8Qug78ZCAmQZvJ4jG01evbsqXs/3+iQrTvYWwZbDNfNQFSdWE6AUWW5GesLBkyAvnBj9DbCBBi9vvOF5SZAX7gxehthAoxe3/nCchOgL9wYvY34RQUYvTSY5XXFgAmwrpi36yoDJkClwT7qigETYF0xb9dVBkyASoN91BUDJsC6Yt6uqwyYAJWGqz/4tSh+5Ym3tq/ODU+x4+tlwARYCXO8zb1582aZP3++/kLU8uXLhZ8Zq6S4JV8nAybASohjD+u5c+fqftbsCrFhwwb9zbyJEyfqstK3335b3I81VlKFJdeAARNgFSSx0q+ibNbGsNsXyw0qyre0mjNgAqyEK8TFLZe9rVmGyk7//HDj2rVrhR1jp0+fLg8++GAlZ1tyTRkwAVbC1Lvvvqs/2MjvGmdkZMjs2bPliSeeqKS0JV8vAybASph76KGH5NFHHxW3rrmSYjGfXFsCTIC1ZdDOrxUDJsBa0Wcn15YBE2BtGbTza8WACbBW9NnJtWXABFhbBu38WjFgAqwVfXZybRmIXgHWtuV2vicYMAF6wg2xa4QJMHZ974mWmwA94YbYNcIEGLu+90TLTYCecEPsGmECjD7f+8piE6Cv3Bl9jTEBRp/PfGWxCdBX7oy+xpgAo89nvrLYBOgrd0ZfY0yA0eczX1l8TQL0VcutMZ5gwAToCTfErhEmwNj1vSdabgL0hBti1wgTYOz63hMtNwF6wg2xa4QJsEa+t0KRYsAEGClmrd4aMWACrBFNVihSDJgAI8Ws1VsjBkyANaLJCkWKARNgpJi1emvEgAmwRjTFbqFIt9wEGGmGrf4qGTABVkmPZUaaARNgpBm2+qtkwARYJT2WGWkGTICRZtjqr5IBE2CV9FhmpBnwrgAj3XKr3xMMmAA94YbYNcIEGLu+90TLTYCecEPsGmECjF3fe6LlJkBPuCF2jTABes/3MWWRCTCm3O29xpoAveeTmLLIBBhT7vZeY02A3vNJTFlkAowpd3uvsSZA7/kkpiwqJ8CYark11hMMmAA94YbYNcIEGLu+90TLTYCecEPsGmECjF3fe6Ll/wMAAP//7FukZwAAAAZJREFUAwCsLpc0nLhOUQAAAABJRU5ErkJggg==</thumbnail><scenes select="1"><scene name="Insertion Sort Walkthrough"><notes>Walkthrough goals:&#xD;- See the recursive insertion-sort structure clearly.&#xD;- Notice that the main sort block delegates the actual placement work to the helper insert block.&#xD;- Watch comparison count to measure how many placement checks the helper block performs.&#xD;&#xD;Suggested test:&#xD;- Blockify a random list such as [8, 3, 5, 1, 4, 7].&#xD;- Run generate and show random list length ... min ... max ..., then insertion sort ... and count comparisons in insertion sort ....</notes><hidden> &#xD; reportJSFunction</hidden><headers></headers><code></code><blocks><block-definition s="insertion sort %&apos;input list&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l" initial="1"></input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportListIsEmpty"><block var="input list"/></block><script><block s="doReport"><block var="input list"/></block></script><list></list></block><block s="doReport"><custom-block s="insert %s into sorted list %l"><block s="reportListItem"><l>1</l><block var="input list"/></block><custom-block s="insertion sort %l"><block s="reportCDR"><block var="input list"/></block></custom-block></custom-block></block></script></block></script></block-definition><block-definition s="insert %&apos;value&apos; into sorted list %&apos;sorted data&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"></input><input type="%l" initial="1"></input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportListIsEmpty"><block var="sorted data"/></block><script><block s="doReport"><block s="reportNewList"><list><block var="value"/></list></block></block></script><list></list></block><block s="doChangeVar"><l>comparison count</l><l>1</l></block><block s="doIf"><block s="reportVariadicLessThan"><list><block var="value"/><block s="reportListItem"><l>1</l><block var="sorted data"/></block></list></block><script><block s="doReport"><block s="reportCONS"><block var="value"/><block var="sorted data"/></block></block></script><list></list></block><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="sorted data"/></block><custom-block s="insert %s into sorted list %l"><block var="value"/><block s="reportCDR"><block var="sorted data"/></block></custom-block></block></block></script></block></script></block-definition><block-definition s="count comparisons in insertion sort %&apos;input list&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l" initial="1"></input></inputs><script><block s="doSetVar"><l>comparison count</l><l>0</l></block><block s="doDeclareVariables"><list><l>sorted result</l></list></block><block s="doSetVar"><l>sorted result</l><custom-block s="insertion sort %l"><block var="input list"/></custom-block></block><block s="doReport"><block var="comparison count"/></block></script></block-definition><block-definition s="make random list length %&apos;length&apos; min %&apos;minimum&apos; max %&apos;maximum&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n" initial="8"></input><input type="%n" initial="1"></input><input type="%n" initial="10"></input></inputs><script><block s="doDeclareVariables"><list><l>generated list</l></list></block><block s="doSetVar"><l>generated list</l><block s="reportNewList"><list></list></block></block><block s="doWarp"><script><block s="doRepeat"><block var="length"/><script><block s="doAddToList"><block s="reportRandom"><block s="reportVariadicMin"><list><block var="minimum"/><block var="maximum"/></list></block><block s="reportVariadicMax"><list><block var="minimum"/><block var="maximum"/></list></block></block><block var="generated list"/></block></script></block></script></block><block s="doReport"><block var="generated list"/></block></script></block-definition><block-definition s="generate and show random list length %&apos;length&apos; min %&apos;minimum&apos; max %&apos;maximum&apos;" type="command" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n" initial="8"></input><input type="%n" initial="1"></input><input type="%n" initial="10"></input></inputs><script><block s="doSetVar"><l>current random list</l><custom-block s="make random list length %n min %n max %n"><block var="length"/><block var="minimum"/><block var="maximum"/></custom-block></block></script></block-definition></blocks><primitives></primitives><stage name="Stage" width="480" height="360" costume="0" color="255,255,255,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="false" hyperops="true" codify="false" inheritance="true" sublistIDs="false" id="149"><pentrails>data:image/png;base64,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</pentrails><costumes><list id="150"><item><list struct="atomic" id="151"></list></item><item><list struct="atomic" id="152">          </list></item></list></costumes><sounds><list id="153"><item><list struct="atomic" id="154"></list></item><item><list struct="atomic" id="155">          </list></item></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="Walkthrough" idx="1" x="0" y="0" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="80,80,80,1" pen="tip" id="160"><costumes><list id="161"><item><list struct="atomic" id="162"></list></item><item><list struct="atomic" id="163">              </list></item></list></costumes><sounds><list id="164"><item><list struct="atomic" id="165"></list></item><item><list struct="atomic" id="166">              </list></item></list></sounds><blocks></blocks><variables></variables><scripts><script x="24" y="126"><custom-block s="insertion sort %l"><l/></custom-block></script><script x="24" y="196"><custom-block s="count comparisons in insertion sort %l"><l/></custom-block></script><script x="24" y="274"><block var="comparison count"/></script><comment x="304" y="120" w="259" collapsed="false">This project shows insertion sort by breaking the list into smaller parts, sorting the rest of the list first, and then inserting each number back into the correct position. The helper block is what adecides where a number belongs, and the comparison count keeps track of how many times the program checks a number’s position in the sorted list.&#xD;</comment><script x="95" y="10"><block s="receiveGo"></block></script><script x="96" y="78"><custom-block s="generate and show random list length %n min %n max %n"><l>11</l><l>1</l><l>20</l></custom-block></script></scripts></sprite><watcher var="comparison count" style="normal" x="4" y="11" color="243,118,29"/><watcher var="current random list" style="normal" x="5" y="38" color="243,118,29" extX="80" extY="70"/></sprites></stage><variables><variable name="current random list"><list struct="atomic" id="182">18,3,8,7,16,19,1,20,15,3,16</list></variable><variable name="comparison count"><l>0</l></variable></variables></scene></scenes></project><media name="Insertion Sort Walkthrough" app="Snap! 11.0.8, https://snap.berkeley.edu" version="2"></media></snapdata>