随笔分类 -  algorithm

如何使用分治算法的思想,分治技巧详解
摘要:分治算法 分治算法的思想 分治算法和递归的区别 使用分治算法需要满足的条件 经典题目 1、二分搜索 2、第一个错误的版本 3、快速排序 4、归并排序 5、数组中的逆序对 6、汉诺塔 总结 参考 分治算法 分治算法的思想 分治算法(divide and conquer)的核心思想其实就是四个字,分而治 阅读全文
posted @ 2022-11-17 09:41 ZhanLi 阅读(948) 评论(0) 推荐(1) 编辑
如何使用递归,递归使用的技巧详解
摘要:弄明白递归 什么是递归 编写递归的技巧 递归的缺点 来几个栗子 1、斐波那契数列 2、兔子繁衍问题 3、青蛙跳台阶问题 4、汉诺塔问题 5、二叉树的遍历 总结 参考 弄明白递归 什么是递归 先来看下百度百科的定义: 程序调用自身的编程技巧称为递归( recursion)。递归作为一种算法在程序设计语 阅读全文
posted @ 2022-10-27 15:26 ZhanLi 阅读(1259) 评论(2) 推荐(4) 编辑
go中单链表
摘要:package main import ( "fmt" ) type ListNode struct { Val int Next *ListNode } type List struct { headNode *ListNode //头节点 } func main() { //res := letcode.Divide(434, 423) //fmt.Println(re... 阅读全文
posted @ 2019-03-21 20:47 ZhanLi 阅读(358) 评论(0) 推荐(0) 编辑
经典的排序算法的总结
摘要:经典的排序算法的总结 0、算法概述 0.1 算法分类 十种常见排序算法可以分为两大类: 非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序。 线性时间非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间 阅读全文
posted @ 2019-02-24 13:26 ZhanLi 阅读(253) 评论(0) 推荐(0) 编辑
布隆算法
摘要:布隆过滤算法体会(BlooomFilter) Bloom Filter是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。Bloom Filter的这种高效是有一定代价的:在判断一个元素是否属于某个集合时,有可能会把不属于这个集合的元素误认为属于这个 阅读全文
posted @ 2019-01-29 20:16 ZhanLi 阅读(1321) 评论(0) 推荐(0) 编辑
内存堆和栈的区别
摘要:内存堆和栈的区别 原文: http://student.csdn.net/link.php?url=http://www.top-e.org%2Fjiaoshi%2Fhtml%2F427.html 在计算机领域,堆栈是一个不容忽视的概念,我们编写的C语言程序基本上都要用到。但对于很多的初学着来说,堆 阅读全文
posted @ 2018-12-09 13:50 ZhanLi 阅读(9301) 评论(1) 推荐(3) 编辑
平衡二叉树
摘要:学习过了二叉查找树,想必大家有遇到一个问题。例如,将一个数组{1,2,3,4}依次插入树的时候,形成了图1的情况。有建立树与没建立树对于数据的增删查改已经没有了任何帮助,反而增添了维护的成本。而只有建立的树如图2,才能够最大地体现二叉树的优点。 在上述的例子中,图2就是一棵平衡二叉树。科学家们提出平 阅读全文
posted @ 2018-11-25 16:26 ZhanLi 阅读(11509) 评论(0) 推荐(0) 编辑
排序算法-插入排序
摘要:有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。 阅读全文
posted @ 2018-06-19 21:17 ZhanLi 阅读(162) 评论(0) 推荐(0) 编辑
散列表--线性探测法
摘要:最近复习了下数据结构中的哈希表,发现在计算等概率情况下查找不成功的平均查找长度时比较迷茫,不知道到底是怎么计算出来的。现在通过查阅资料终于知道如何计算了,所以记录下来以供以后查阅。 下面看下2010年2010年全国硕士研究生入学统一考试计算机科学与技术学科联考计算机学科专业基础综合试题中一个考哈希表 阅读全文
posted @ 2018-05-08 09:19 ZhanLi 阅读(23947) 评论(4) 推荐(5) 编辑
算法的时间复杂度和空间复杂度
摘要:常用的算法的时间复杂度和空间复杂度 排序法 最差时间分析 平均时间复杂度 稳定度 空间复杂度 冒泡排序 O(n2) O(n2) 稳定 O(1) 快速排序 O(n2) O(n*log2n) 不稳定 O(log2n)~O(n) 选择排序 O(n2) O(n2) 稳定 O(1) 二叉树排序 O(n2) O 阅读全文
posted @ 2018-05-07 15:03 ZhanLi 阅读(583) 评论(0) 推荐(0) 编辑