
数据结构与算法
瑞行AI
这个作者很懒,什么都没留下…
展开
-
递归栈(hanoi问题)
下面以三层hanoi为例,说明递归过程运行的层次。(一、)“三层hanoi问题”描述: 有三个分别命名为X,Y,ZX,Y,Z的塔座,在XX上有3个直径大小各不相同、依次编号为1,2,3的圆盘,现要求将XX轴上的3个圆盘移至ZZ上,并仍按同样顺序叠排,圆盘移动时必须遵循下列规则: 1.)每次只能移动一个圆盘 2.)圆盘可以插在X,Y,ZX,Y,Z中的任一塔座上 3.)任何时刻都不能将一个较大的原创 2017-10-23 00:14:16 · 387 阅读 · 0 评论 -
Python求凸包及多边形面积
一般有两种算法来计算平面上给定n个点的凸包:Graham扫描法(Graham’s scan),时间复杂度为O(nlgn);Jarvis步进法(Jarvis march),时间复杂度为O(nh),其中h为凸包顶点的个数。这两种算法都按逆时针方向输出凸包顶点。Graham扫描法用一个栈来解决凸包问题,点集Q中每个点都会进栈一次,不符合条件的点会被弹出,算法终止时,栈中的点就是凸包的顶点(逆...原创 2018-08-02 19:17:19 · 12124 阅读 · 1 评论 -
Python排序算法
冒泡排序bubble=[45,32,12,23]for i in range(len(bubble)-1,0,-1): for j in range(i): print(bubble[j], bubble[j+1]) if bubble[j]>bubble[j+1]: temp=b原创 2018-12-10 11:35:06 · 381 阅读 · 0 评论 -
Python二进制源码补码
假如我的计算机是32位的,接下来要计算~5的值:5 的二进制表达式为:0000 0000 0000 0000 0000 0000 0000 0101执行 ~ 运算,即 ~ 5后: 1111 1111 1111 1111 1111 1111 1111 1010,即结果为-6 ?计算机普遍使用“补码”表示负数;知道一个数的“补码”,求其值(“源码”)的方法是:首先看符号位(最左的一位),如果是...原创 2018-04-25 22:42:57 · 2951 阅读 · 0 评论