CSci 150: Foundations of computer science I
Home Syllabus Assignments Tests

Sorting algorithms

Selection sort

def selection_sort(data):
    for i in range(len(data)):
        mini = i                                   # find index of minimum
        for j in range(i + 1, len(data)):
            if data[j] < data[mini]:
                mini = j
        data[i], data[mini] = data[mini], data[i]  # swap entries i and mini

Insertion sort

def insertion_sort(data):
    for i in range(1, len(data)):
        t = data[i]                    # t = value to insert in data[0:i+1]
        j = i - 1
        while j >= 0 and data[j] > t:  # entry j belongs after t
            data[j + 1] = data[j]      # so shift it back to make room
            j = j - 1
        data[j + 1] = t                # now place t in its right spot