
Python数据结构与算法
「已注销」
这个作者很懒,什么都没留下…
展开
-
斐波那契数列的对数时间复杂度计算分析(说服你对数时间复杂度是可以算的)+求平方的对数时间分析
先上一下斐波那契的代码class Solution { static final int MOD = 1000000007; public int fib(int n) { if (n < 2) { return n; } int[][] q = {{1, 1}, {1, 0}}; int[][] res = pow(q, n - 1); return res[0][0];原创 2022-01-31 02:32:32 · 1803 阅读 · 2 评论 -
括号匹配问题(有效的括号)[栈图图解]
附上题目力扣最常见的一个方法是使用栈先把使用栈的代码放上去我直接放C++(什么语言不重要)的,后面又图解思路(主要看这个)class Solution {public: bool isValid(string s) { int n = s.size(); if (n % 2 == 1) { return false; } unordered_map<char, char>...原创 2022-01-29 08:59:09 · 427 阅读 · 0 评论 -
动态数组的几何增长的摊销分析的弊端优化
承接上文动态数组的摊销分析【Python也有数组的类似概念比如list】_DanStevensBigFan-优快云博客链接里的描述的是当数组存满时,想要继续增加长度的情况但是,有时候如果我们获取数组的长度,里面会出现没有存满的情况(可能时因为删除,或者是就是想先增加数组长度)那么元素的实际数量与数组大小之间不存在正比关系#pragma once#include <iostream>using namespace std; #define InitSize 10 /原创 2022-01-27 13:57:51 · 1163 阅读 · 0 评论 -
动态数组的摊销分析【Python也有数组的类似概念比如list】
我先说一下数组版的动态数组的摊销分析我先上C++的代码【没有摊销的】吧【应该都能看懂吧】【即使没学过C和C++】#pragma once#include <iostream>using namespace std;#define InitSize 10 //顺序表默认的初始长度typedef struct{ int *data; //指示动态分配数组的指针 int MaxSize; //顺序表的当前的最大容量 int length; //顺序表原创 2022-01-27 13:21:55 · 1674 阅读 · 0 评论 -
Python的最大递归深度
import sysold = sys.getrecursionlimit()print(old)#1000,可能是个估计值,我不清楚我没查# 报错范围总是比限制要小2(我的电脑上)# 我不知道为什么~~~感兴趣可以查一查sys.setrecursionlimit(1005)def fbnc2(n): if(n<=1): return [1,0] else: [a,b] = fbnc2(n-1) return [a+b,a.原创 2022-01-26 16:03:42 · 1558 阅读 · 0 评论 -
斐波那契数的好的递归算法和坏的递归算法【python】【代码】【图解】
先看一下坏的def fbnc(n): if n<= 1: return n else: return fbnc(n-2)+fbnc(n-1)print(fbnc(5))print(fbnc(15))print(fbnc(25))print(fbnc(50))那么时间复杂度不难看出是2的(n/2)次方这就是指数级的,当n的数值大的时候就会很慢比如上面的运行结果的fbnc(50)就等了很长时间(看看你的电脑是不是也温度上升了.原创 2022-01-26 15:50:06 · 623 阅读 · 0 评论 -
Python二分法查找【图解】【代码】
def binary_search(data,target,low,high): # low和high是下标 # num用来统计运行了多少次 global num if(low > high): print("low值大于high值,错误") return False else: # //整除 mid = (low+high)//2 if target == data[mid]:.原创 2022-01-26 14:56:45 · 558 阅读 · 0 评论