Algorithm
Leahy000
这个作者很懒,什么都没留下…
展开
-
最长回文子串解法
最长回文子串原文链接:https://www.leahy.club/archives/%E7%AE%97%E6%B3%95%E4%B8%8E%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E6%9C%80%E9%95%BF%E5%9B%9E%E6%96%87%E5%AD%90%E4%B8%B21. 题目2. 解答常见的解法主要有:暴力法:列举出所有可能的子串...转载 2020-03-09 16:23:08 · 211 阅读 · 0 评论 -
二叉树的遍历(递归、非递归、Morris Traversal)
二叉树的遍历原文链接:https://www.leahy.club/archives/%E7%AE%97%E6%B3%95%E4%B8%8E%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E9%81%8D%E5%8E%861. 综述在二叉树中,搜索(Search)和遍历(Traversal)本质...转载 2020-03-08 13:20:51 · 238 阅读 · 0 评论 -
Top K问题
Top K问题Top K问题在数据分析中非常普遍的一个问题(在面试中也经常被问到),比如:从20亿个数字的文本中,找出最大的前100个。解决Top K问题有两种思路,最直观:小顶堆(大顶堆 -> 最小100个数);较高效:Quick Select算法。LeetCode上有一个问题215. Kth Largest Element in an Array,类似于Top K问题...原创 2019-11-15 22:07:55 · 169 阅读 · 0 评论 -
几种常见的排序算法的Ptython实现(冒泡、选择、插入、希尔、归并、快速)
一、综述排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。用一张图概括:时间复杂度 平方阶 (O(n2)) 排序 各类简单排序:直接插入、直接选择和冒泡排序。 ...原创 2018-11-26 22:02:01 · 434 阅读 · 0 评论 -
如何计算算法的时间复杂度
原地址:http://www.nowamagic.net/librarys/veda/detail/2195在进行算法分析时,语句总的执行次数T(n)是关于问题规模n的函数,进而分析T(n)随n的变化情况并确定T(n)的数量级。算法的时间复杂度,也就是算法的时间量度,记作:T(n}=0(f(n))。它表示随问题规模n的增大,算法执行时间的埔长率和 f(n)的埔长率相同,称作算法的渐近时间复杂度...转载 2018-11-26 22:08:17 · 820 阅读 · 0 评论 -
TimSort(简易版)和堆排序的Python实现
一、timsort排序简述:timsort排序是Python、Java等编程语言默认的排序函数。timsort排序是一种高效、稳定的排序算法,其平均时间复杂度为 O(nlogn)。timsort是将插入排序和归并排序结合起来并从提高排序速度角度提出了很多有效的提速方法。在现实的待排序序列中有很多序列存在许多已经排好序的“小块”,timsort就是很好的利用这一特性。在timsort中我...原创 2018-11-27 21:46:48 · 1331 阅读 · 2 评论 -
算法性能分析(以最大子序列计算为例子)
算法(性能)分析1 数学基础定义:①如果存在正常数c和n0n_{0}n0 使得当N≥n0N\ge n_{0}N≥n0 时T(N)≤cf(N)T(N)\le cf(N)T(N)≤cf(N) ,则记为T(N)=O(f(N))T(N)=O(f(N))T(N)=O(f(N)) .②当T(N)=O(f(N))T(N)=O(f(N))T(N)=O(f(N)) 时,可以保证函数T(N)T(N)T(N...原创 2019-09-05 22:01:20 · 221 阅读 · 2 评论