Python算法结构
qq_26620955
这个作者很懒,什么都没留下…
展开
-
Python实现冒泡排序
冒泡排序算是很简单的 算法原理:在扫描整个序列的过程中将相邻的两数进行比较,后一个数大于前一个数就进行交换,这样,第一趟比较下来,最大的那个数就会被排在最后。同理,完成整个序列的排序。代码用了双层循环:def bubbleSort(list1): n=len(list1) #控制比较的趟数 for i in range(n-1): #控制每次进行比较的原创 2017-03-01 16:36:24 · 249 阅读 · 0 评论 -
Python快速排序
快速排序是对冒泡排序的一众改进,它的基本思想是:通过一趟排序将待排序列分割成独立的两部分,其中一部分的序列数均比另一部分的数字小,则可再分别对这两部分序列继续进行快排,以达到整个序列有序。 整个排序的过程可递归进行#一次划分def partition(list1,start,end): i=start j=end #右侧扫描 while(i<j and li原创 2017-03-02 10:05:51 · 328 阅读 · 0 评论 -
Python实现递归
递归是一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法。能把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略常常只需要少量的代码 初学编程,接触递归的时候我只觉得,哇,好厉害好厉害啊,好像很简单的样子,但是真正用起来比较考验你的思维逻辑,理清问题是前提关键。例子:汉诺塔游戏 hanoi规则就是把一叠大小递增的圆盘从a移动到c,在整个过程中,可原创 2017-03-02 10:32:16 · 343 阅读 · 0 评论 -
Python实现栈,及栈的应用实例
Python实现栈 栈(stack),是限定在表尾进行插入或删除操作的线性表。因此,对于栈来说,表尾端有其特殊含义,称为栈顶(top),表头被称为栈底(bottom)。class stack(object): #构造空栈 def __init__(self,size): self.size=size self.stack=[] #输出栈原创 2017-03-02 12:24:42 · 3093 阅读 · 3 评论 -
Python二分查找
二分查找又称折半查找,首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。def binarySearch(find,list1):原创 2017-03-02 13:44:26 · 245 阅读 · 0 评论