<snapdata remixID="9138381"><project name="Selection Sort" app="Snap! 5.4, http://snap.berkeley.edu" version="1"><notes></notes><thumbnail>data:image/png;base64,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</thumbnail><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" codify="false" inheritance="true" sublistIDs="false" scheduled="false" id="1"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAK1SURBVHhe7cExAQAAAMKg9U9tDB8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgIsajf4AAXBXLv8AAAAASUVORK5CYII=</pentrails><costumes><list struct="atomic" id="2"></list></costumes><sounds><list struct="atomic" id="3"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites><sprite name="Sprite" 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="8"><costumes><list struct="atomic" id="9"></list></costumes><sounds><list struct="atomic" id="10"></list></sounds><blocks></blocks><variables></variables><scripts><script x="61" y="56"><block s="receiveGo"></block><block s="doSetVar"><l>data_list</l><block s="reportNewList"><list><l>2</l><l>9</l><l>1</l><l>5</l><l>-1</l><l>70</l><l>49</l><l>100</l><l>7</l><l>92</l></list></block></block></script><script x="20" y="410"><block s="receiveGo"></block><block s="doFor"><l>j</l><l>1</l><block s="reportDifference"><block s="reportListLength"><block var="data_list"/></block><l>1</l></block><script><block s="doSetVar"><l>curr_min</l><block s="reportListItem"><block var="j"/><block var="data_list"/></block></block><block s="doSetVar"><l>curr_min_index</l><block var="j"/></block><block s="doFor"><l>i</l><block s="reportSum"><block var="j"/><l>1</l></block><block s="reportListLength"><block var="data_list"/></block><script><block s="doIf"><block s="reportLessThan"><block s="reportListItem"><block var="i"/><block var="data_list"/></block><block var="curr_min"/></block><script><block s="doSetVar"><l>curr_min</l><block s="reportListItem"><block var="i"/><block var="data_list"/></block></block><block s="doSetVar"><l>curr_min_index</l><block var="i"/></block></script></block></script><comment w="90" collapsed="true">In this for loop we find the smallest value left in the unsorted part of the list.</comment></block><block s="doSetVar"><l>temp</l><block var="curr_min"/></block><block s="doReplaceInList"><block var="curr_min_index"/><block var="data_list"/><block s="reportListItem"><block var="j"/><block var="data_list"/></block></block><block s="doReplaceInList"><block var="j"/><block var="data_list"/><block var="temp"/></block></script><comment w="90" collapsed="true">&quot;j&quot; is the same as unsorted_index in the other example. Here it is just expressed as a for loop intead of a repeat until loop. </comment></block></script><script x="384" y="10"><block s="receiveGo"></block><block s="doSetVar"><l>unsorted_index</l><l>1</l><comment w="90" collapsed="true">Unsorted index marks the index list at which the values become unsorted. It starts at the very beginning of the list and then as we find the smallest value in the unsorted part of the list, we swap it into that index and now that index is part of the &quot;sorted&quot; part of the list.</comment></block><block s="doUntil"><block s="reportEquals"><block var="unsorted_index"/><block s="reportListLength"><block var="data_list"/></block></block><script><block s="doSetVar"><l>curr_min</l><block s="reportListItem"><block var="unsorted_index"/><block var="data_list"/></block></block><block s="doSetVar"><l>curr_min_index</l><block var="unsorted_index"/></block><block s="doFor"><l>i</l><block var="unsorted_index"/><block s="reportListLength"><block var="data_list"/></block><script><block s="doIf"><block s="reportLessThan"><block s="reportListItem"><block var="i"/><block var="data_list"/></block><block var="curr_min"/></block><script><block s="doSetVar"><l>curr_min</l><block s="reportListItem"><block var="i"/><block var="data_list"/></block></block><block s="doSetVar"><l>curr_min_index</l><block var="i"/></block></script></block></script><comment w="90" collapsed="true">In this for loop we find the smallest value left in the unsorted part of the list.</comment></block><block s="doSetVar"><l>temp</l><block s="reportListItem"><block var="curr_min_index"/><block var="data_list"/></block><comment w="90" collapsed="true">Once smallest value and its index are found, swap them into the first index of the unsorted list (&quot;unsorted_index&quot;) and increase unsorted_index so that index is now considered sorted. </comment></block><block s="doReplaceInList"><block var="curr_min_index"/><block var="data_list"/><block s="reportListItem"><block var="unsorted_index"/><block var="data_list"/></block></block><block s="doReplaceInList"><block var="unsorted_index"/><block var="data_list"/><block var="temp"/></block><block s="doChangeVar"><l>unsorted_index</l><l>1</l></block></script><comment w="90" collapsed="true">once unsorted_index reaches the end of the list, then everything must be the &quot;sorted&quot; part of the list and thus the list is sorted.</comment></block></script></scripts></sprite><watcher var="unsorted_index" style="normal" x="10" y="31.000001999999995" color="243,118,29"/><watcher var="temp" style="normal" x="10" y="73.00000599999998" color="243,118,29"/><watcher var="data_list" style="normal" x="255" y="7" color="243,118,29" extX="143" extY="277"/><watcher var="curr_min_index" style="normal" x="10" y="52.00000399999999" color="243,118,29"/><watcher var="curr_min" style="normal" x="10" y="10" color="243,118,29"/></sprites></stage><hidden></hidden><headers></headers><code></code><blocks></blocks><variables><variable name="data_list"><list struct="atomic" id="172">2,9,1,5,-1,70,49,100,7,92</list></variable><variable name="unsorted_index"><l>6</l></variable><variable name="temp"><l>9</l></variable><variable name="curr_min_index"><l>5</l></variable><variable name="curr_min"><l>9</l></variable></variables></project><media name="Selection Sort" app="Snap! 5.4, http://snap.berkeley.edu" version="1"></media></snapdata>