Python implementation of the Selection Sort algorithm

Data Structure Sorting (Article) Sorting (Program)

50

Given Input:

Original array: [64, 25, 12, 22, 11]

Expected Output:

Sorted array: [11, 12, 22, 25, 64]

Program:

<span class="com"># Selection Sort in Python</span><span class="pln">

</span><span class="kwd">def</span><span class="pln"> selection_sort</span><span class="pun">(</span><span class="pln">arr</span><span class="pun">):</span><span class="pln">
    </span><span class="com"># Traverse through all array elements</span><span class="pln">
    </span><span class="kwd">for</span><span class="pln"> i </span><span class="kwd">in</span><span class="pln"> range</span><span class="pun">(</span><span class="pln">len</span><span class="pun">(</span><span class="pln">arr</span><span class="pun">)):</span><span class="pln">
        </span><span class="com"># Find the minimum element in the unsorted portion of the array</span><span class="pln">
        min_idx </span><span class="pun">=</span><span class="pln"> i
        </span><span class="kwd">for</span><span class="pln"> j </span><span class="kwd">in</span><span class="pln"> range</span><span class="pun">(</span><span class="pln">i</span><span class="pun">+</span><span class="lit">1</span><span class="pun">,</span><span class="pln"> len</span><span class="pun">(</span><span class="pln">arr</span><span class="pun">)):</span><span class="pln">
            </span><span class="kwd">if</span><span class="pln"> arr</span><span class="pun">[</span><span class="pln">j</span><span class="pun">]</span><span class="pln"> </span><span class="pun">&lt;</span><span class="pln"> arr</span><span class="pun">[</span><span class="pln">min_idx</span><span class="pun">]:</span><span class="pln">
                min_idx </span><span class="pun">=</span><span class="pln"> j

        </span><span class="com"># Swap the found minimum element with the first element of the unsorted portion</span><span class="pln">
        arr</span><span class="pun">[</span><span class="pln">i</span><span class="pun">],</span><span class="pln"> arr</span><span class="pun">[</span><span class="pln">min_idx</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> arr</span><span class="pun">[</span><span class="pln">min_idx</span><span class="pun">],</span><span class="pln"> arr</span><span class="pun">[</span><span class="pln">i</span><span class="pun">]</span><span class="pln">

</span><span class="com"># Example usage</span><span class="pln">
arr </span><span class="pun">=</span><span class="pln"> </span><span class="pun">[</span><span class="lit">64</span><span class="pun">,</span><span class="pln"> </span><span class="lit">25</span><span class="pun">,</span><span class="pln"> </span><span class="lit">12</span><span class="pun">,</span><span class="pln"> </span><span class="lit">22</span><span class="pun">,</span><span class="pln"> </span><span class="lit">11</span><span class="pun">]</span><span class="pln">
</span><span class="kwd">print</span><span class="pun">(</span><span class="str">"Original array:"</span><span class="pun">,</span><span class="pln"> arr</span><span class="pun">)</span><span class="pln">

selection_sort</span><span class="pun">(</span><span class="pln">arr</span><span class="pun">)</span><span class="pln">

</span><span class="kwd">print</span><span class="pun">(</span><span class="str">"Sorted array:"</span><span class="pun">,</span><span class="pln"> arr</span><span class="pun">)</span>

Output:

Original array: [64, 25, 12, 22, 11]
Sorted array: [11, 12, 22, 25, 64]

Explanation:

  • Outer Loop: Iterates over each element in the array.
  • Inner Loop: Finds the minimum element from the unsorted part of the array.
  • Swap: Swaps the minimum element with the first unsorted element.
  • Sorted Output: After the loops complete, the array is sorted in ascending order.

This Particular section is dedicated to Programs only. If you want learn more about Data Structure. Then you can visit below links to get more depth on this subject.