学习算法第一天.
插入排序
输入:n个数的一个序列(a1, a2 ,a3, ..., an)
输出:(a'1,a'2,a'3,...,a'n) 满足a'1 <= a'2 <= a'3 <= ... <= a'n
算法思想:时间复杂度c*n2,对于少量元素的排序是一个有效算法.
首先我们取第二个元素与第一个元素进行比较,比它小就把这个元素插入到它前面,否则放在后面,再取第三个元素与前面两个排好序的元素就行比较,从后面往前面就行比较,当出现这个元素比前一个元素大比后一个元素小就将这个元素插入到这两个元素之间,如果没比这个元素小的元素则这个元素是前面排好序中最大的元素放在最后面.重复前面第三个元素的比较方法,直到最后一个元素
python实现: unsorted_list = [1322,23,45,2,3,53,27,3,678,122] def insertSort(arr): length = len(arr) print(length,arr) for i in range(1,length): x = arr[i] j = i - 1 while j >= 0 and arr[j] > x: arr[j+1] = arr[j] j -= 1 arr[j+1] = x print(arr[:i]) return arr