+91 81900 98289

Selection Sort

This Selection Sort lesson is for a beginner. Read the short notes, run each example, then change one name or number and run it again.

Selection sort finds the smallest remaining item and swaps it into the next open position.

It makes fewer swaps than bubble sort and still compares every pair of positions.

Example 1: Start here

After i steps, the first i items are in their final places.

def selection(items): # define the function; it runs when you call it items = items[:] # a separate copy for i in range(len(items)): # repeat once per number; range stops before the last small = i # another name for the same value for j in range(i + 1, len(items)): # repeat once per number; range stops before the last if items[j] < items[small]: # run the indented lines only when this is true small = j # another name for the same value items[i], items[small] = items[small], items[i] # swap the two values return items # send this value back to the caller print(selection([4, 1, 3]))

Example 2: Walk the values

Selection Sort starts by visiting one value at a time. Read the printed lines from top to bottom.

values = [11, 3, 11, 7] # a list; the values stay in this order for value in values: # repeat the indented lines once per value print(value)

Example 3: Keep the largest

Many data-structure lessons reduce a list to one answer. This one remembers the largest number seen so far.

values = [11, 3, 11, 7] # a list; the values stay in this order best = values[0] # the first value for value in values: # repeat the indented lines once per value if value > best: # run the indented lines only when this is true best = value # another name for the same value print(best)

Example 4: Search for a target

A search asks one yes-or-no question: is the target in the collection? Selection Sort builds on that question.

values = [3, 11, 11] # a list; the values stay in this order target = 11 # a whole number print(target in values) # in is True when the value is found
After i steps, the first i items are in their final places.
Call Now 81900 98289