算法
文章平均质量分 78
DamZ
云计算、数据库内核
展开
-
35岁开始学算法笔记2 -- 时间复杂度
时间复杂度和空间复杂度究竟是什么呢?首先,让我们来想象一个场景。某一天,小灰和大黄同时加入了同一家公司。一天后,小灰和大黄交付了各自的代码,两人的代码实现的功能差不多。大黄的代码运行一次要花 100ms,占用内存 5MB。小灰的代码运行一次要花 100s,占用内存 500MB。于是……在上述场景中,小灰虽然也按照老板的要求实现了功能,但他的代码存在两个很严重的问题。1. 运行时间长运行别人的代码只要 100ms,而运行小灰的代码则要 100s,使用者肯定是无法忍受的。2.转载 2022-04-10 00:55:24 · 196 阅读 · 0 评论 -
35岁开始学算法笔记1--算法和数据结构
学习:【漫画算法-小灰的算法之旅】算法有高效的,也有拙劣的。在计算机领域,我们同样会遇到各种高效和拙劣的算法。衡量算法好坏的重要标准有两个。时间复杂度 空间复杂度场景:1. 运算例如求出两个数的最大公约数,要做到效率的极致,的确需要动一番脑筋。再如计算两个超大整数的和,按照正常方式来计算肯定会导致变量溢出。这又该如何求解呢?2. 查找当你使用谷歌、百度搜索某一个关键词,或在数据库中执行某一条 SQL 语句时,你有没有思考过数据和信息是如何被查出来的呢?3. 排序排原创 2022-04-10 00:42:35 · 260 阅读 · 0 评论 -
字典树Trie
字典树(Trie)是一种很特别的树状信息检索数据结构,如同其名,它的构成就像一本字典,可以让你快速的进行字符插入、字符串搜索等。Trie一词来自 retrieval,发音为 /tri:/ "tree",也有人读为 /traɪ/ "try"。字典树设计的核心思想是空间换时间,所以数据结构本身比较消耗空间。但它利用了字符串的共同前缀(Common Prefix)作为存储依据,以此来节省存储空...转载 2019-11-23 16:52:48 · 264 阅读 · 0 评论 -
CAS算法简介
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/q5706503/article/details/84558343CAS是什么?CAS是英文单词CompareAndSwap的缩写,中文意思是:比较并替换。CAS需要有3个操作数:内存地址V,旧的预期值A,即将要更新的目标值B。CA...转载 2019-11-17 20:31:21 · 307 阅读 · 0 评论 -
面试题:n个整数的序列,其中一个整数重复次数超过一半,在O(n)时间内找出该整数
先列出2个牛人给出的较好的答复方法1:既然过半,那么用这个数与其他数配对的话,剩余的数字一定还是过半的这个数字。因此可以通过不断删除不同的2个数,直到没有不同的2个数,那么这个数就是要找的数。证明:最坏情况下,只有这个数同别的数配对,并且被删除,剩下的仍旧是这个数,因此得证。链接:http://blog.163.com/xie_wenbin613/blog/static/1754890原创 2012-08-31 17:40:05 · 4018 阅读 · 0 评论 -
保障系统出口畅通
这两天我们在做批量业务的时候,当业务量达到10万以上的时候,系统总是会阻塞到pthread_wait_condition。仔细分析了代码,对队列的操作,入队已经加锁,并且判断是否队满,队满的情况下,会等待not full信号;出队也进行了加锁,并且判断是否队空,队空的情况下,会等地not empty信号通知;可是问题是:系统很多子部门都用到了队列操作,就是阻塞那个部分呢?通过inf原创 2013-06-03 10:59:15 · 920 阅读 · 0 评论 -
堆排序以及其应用大总结
教材上很详细,网上内容也不少,但感觉不够直观、简练、丰富。下面按照自己方式总结下。提纲:1)算法描述2)代码3)“三围”以及证明(复杂度、效率、稳定性等分析)4)算法直接应用5)算法原理应用6)举例一、算法描述: 堆概念(数据结构):堆是一颗完全树,同时满足每个节点均大于或小于它的子节点,这样的数据结构被称为最大堆或者最小堆。很多博客里面说是一个完原创 2012-08-29 01:52:19 · 20190 阅读 · 1 评论 -
快速排序详解,附源码
一、基本思想:通过一趟排序,将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录进行排序,以达到整个序列有序二、排序过程:对r[s……t]中记录进行一趟快速排序,附设两个指针i和j,设枢轴记录rp=r[s],x=rp.key1.初始时令i=s,j=t2.首先从j所指位置向前搜索第一个关键字小于x的记录,并和rp交换原创 2012-08-31 18:42:38 · 1046 阅读 · 0 评论 -
28个必看的算法
前十个是来自圣经的十大算法:发起人的描述:《来自圣经的证明》收集了数十个简洁而优雅的数学证明,迅速赢得了大批数学爱好者的追捧。如果还有一本《来自圣经的算法》,哪些算法会列入其中呢?第一名:Union-find严格地说,并查集是一种数据结构,它专门用来处理集合的合并操作和查询操作。并查集巧妙地借用了树结构,使得编程复杂度降低到了令人难以置信的地步;用上一些递归技巧后,各种操作几乎都能转载 2012-09-19 00:14:33 · 1679 阅读 · 0 评论 -
大数相乘之个人分析
今天有空研究下大数相乘,按照个人习惯在看别人的算法之前,我还是习惯自己先研究一番。先解释下何为大数相乘,所以大数相乘即由于乘数和被乘数以及相乘结果超过语言级自带的范围时,或者有严格的精度要求时的计算。例如2个30多位的数字相乘。很多人给出的大致算法是使用程序模拟手工计算乘法,这里主要涉及频繁的进位,对齐。我仔细分析了下发现还是有很多技巧可以提升的。下面是具体的分析过程:原创 2012-08-25 17:32:34 · 1024 阅读 · 0 评论