Main.Sorting History

Hide minor edits - Show changes to markup

February 25, 2010, at 06:32 PM MST by 71.196.160.210 -
Added lines 1-60:

(:source lang=python:)

""" Practice with algorithms - Sorting Below you will find code for the following sorting algorithms: selection sort, insertion sort, and bubble sort """

def selection_sort (array) :

    for i in range(len(array)) :
        min = i;
        # find the smallest element in the unsorted part of the list
        for j in range(i + 1, len(array)) :
            if (array[j] < array[min]) :
                min = j
        # put the smallest element in its correct position:
        array[i],array[min] = array[min],array[i]

def insertion_sort(array) :

    for i in range(1,len(array)) :
        temp = array[i]
        position = i
        # shift larger values to the right
        while (position > 0 and array[position-1] > temp) :
            array[position] = array[position-1]
            position-=1
        # insert the current item
        array[position] = temp;

def bubble_sort(array) :

    for position in range(len(array)-1, 0, -1) :
        for i in range(position) :
            if (array[i] > array[i+1]) :
                array[i],array[i+1] = array[i+1],array[i]
  1. an alternative form for the for loops:

def bubble_sort2(array):

    for i in range(len(array)-1) :
        for j in range(len(array)-1-i) :
            if array[j] > array[j+1] :
                array[j], array[j+1] = array[j+1], array[j]
  1. let's run the algorithms:

a = [1,3,5,2,4] print a selection_sort(a) print a

a = [1,3,5,2,4] print a insertion_sort(a) print a

a = [1,3,5,2,4] print a bubble_sort(a) print a

(:sourceend:)