插入排序法

說明

    1. 假設陣列中第 1 個位置中之值為【目前最小值】。

    2. 依次自下一個位置開始比較之後所有值,是否有比目前最小值更小之值。

    3. 交換 【 目前最小值位置 】 中之值與 【 新最小值位置 】 中之值。

    4. 假設 【 新最小值位置 】 中之值為【目前最小值】,重複 (2) 直至最後倒數第 2 個位置為止。

原始碼

def SwapValues(myArray, i, j): myTempVale = myArray[i] myArray[i] = myArray[j] myArray[j] = myTempVale def FindMinPos(myArray, minValue, i): arraySize = len(myArray) newMinValue = minValue newMinPos = i - 1 for j in xrange(i, arraySize): if (myArray[j] < newMinValue): newMinValue = myArray[j] newMinPos = j return newMinPos def InsertionSort(myArray): arraySize = len(myArray) for i in xrange(0, arraySize - 1): newMinValue = myArray[i] newMinPos = FindMinPos(myArray, newMinValue, i+1) if (newMinPos != i): SwapValues(myArray, i, newMinPos) return myArray if __name__ == "__main__": myArray = [11, 99, 22, 88, 33, 77, 44, 66, 55] print(InsertionSort(myArray))