摘要: 递归是一种解决问题的方法,其基本思路是把原问题分解为一系列的子问题,子问题继续分解直至子问题足够简单并可以立即解决。通常来说递归包含一个函数调用自己。 def listsum(numList): if len(numList) == 1: return numList[0] else: return 阅读全文
posted @ 2017-11-27 09:16 Tom_怪老头儿 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后一个元素除外(让数组多一个空间才有插入的位置),而第二 阅读全文
posted @ 2017-11-27 09:12 Tom_怪老头儿 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。def Bubble_Sort(lists): # 冒泡排序 count = len(lists) for i in range(count-1) 阅读全文
posted @ 2017-11-27 09:11 Tom_怪老头儿 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 选择排序:比如在一个长度为N的无序数组中,在第一趟遍历N个数据,找出其中最小的数值与第一个元素交换,第二趟遍历剩下的N-1个数据,找出其中最小的数值与第二个元素交换......第N-1趟遍历剩下的2个数据,找出其中最小的数值与第N-1个元素交换,至此选择排序完成。def selectSort(lis 阅读全文
posted @ 2017-11-27 09:10 Tom_怪老头儿 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 快速排序(Quicksort)是对冒泡排序的一种改进。 快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以 阅读全文
posted @ 2017-11-27 09:01 Tom_怪老头儿 阅读(465) 评论(0) 推荐(0) 编辑