python算法
xsj_blog
这个作者很懒,什么都没留下…
展开
-
算法简介
算法是一组完成任务的指令。任何代码片段都可视为算法运行时间:一般而言,应选择效率最高的算法,以最大限度地减少运行时间或占用时间。 算法的速度指的并非时间,而是操作数的增速,即随着输入的增加,其运行时间将以什么样的速度增加大O表示法算法的运行时间用大O表示法表示,例如O(n),n代表了操作数,指出了最糟情况下的运行时间。例如,在最糟的情况下,通过简单查找,查看电话簿中的每个条目,对应的运行时间为O(原创 2017-04-23 13:21:39 · 463 阅读 · 0 评论 -
常见的查找
简单查找对于包含 n 个元素的列表,用简单查找最多需要 n 步二分查找:前提条件:列表必须是有序的 操作过程:若要查找的元素包含在列表中,二分查找返回其位置;否则返回None 结果:对于包含 n 个元素的列表,用二分查找最多需要 log n步示例代码:'''若猜的数字小了,就相应地修改 low若猜的数字大了,就相应地修改 high'''def binary_search(list, it原创 2017-04-23 13:43:42 · 354 阅读 · 0 评论 -
常见的排序
选择排序理解该代码前提条件:必须熟悉数组、链表、大O表示法 运行时间:O(nlog n)示例代码:#coding: utf-8def find_smallest(arr): smallest = arr[0] #存储最小的值 smallest_index = 0 #存储最小元素的索引 for i in range(1, len(arr)): i原创 2017-04-23 14:00:51 · 337 阅读 · 0 评论 -
递归
递归只是让你解决方案更加清晰,并没有性能上的优势。实际上,在有些情况下,使用循环的性能更好。正如,在Stack Overflow 上,Leigh Caldwell 说了一句话:“如果使用循环,程序的性能可能更高;如果使用递归,程序可能更容易理解。如何选择要看什么对你来说更重要。”递归函数包括两个部分: 边界条件:函数不再调用自己,从而避免形成无限循环。 递归条件:函数调用自己调用栈的定义:存储多原创 2017-04-23 14:45:37 · 481 阅读 · 0 评论 -
分而治之(D&C)
分而治之(D&C)并非可用于解决问题的算法,而是一种解决问题的思路。分而治之算法是递归的,使用分而治之(D&C)解决问题的过程包括两个步骤:找出递归边界条件,这种条件必须尽可能简单不断地将问题分解(或者说缩小规模),直到符合递归边界条件。 注意:假设要将一块地均匀地分成方块,确保分出的方块最大的条件,应采取D&C策略:适用于这小块地的最大方块,也是适用于整块地的最大方案。原因可参考欧几里得算原创 2017-04-23 15:10:46 · 3824 阅读 · 3 评论 -
python Tip 算法题目
1、给你一个列表 L, 对L进行升序排序并输出排序后的列表。 例如:L = [8,2,50,3] 则输出:[2,3,8,50]print(sorted(L))2、给你一个字符串 a, 请你输出逆序之后的a。例如:a=‘xydz’则输出:zdyxprint (''.join(sorted(a,reverse=True)))3、给你一字典a,如a={1:1,2:2,3:3},输出字典a的key原创 2017-05-28 09:25:34 · 1649 阅读 · 0 评论