Algorithm
随心而至
大道至简
展开
-
数据结构与算法之美--知识点六:排序
目录11 | 排序(上):为什么插入排序比冒泡排序更受欢迎?12 | 排序(下):如何用快排思想在O(n)内查找第K大元素?13 | 线性排序:如何根据年龄给100万用户数据排序?14 | 排序优化:如何实现一个通用的、高性能的排序函数?11 | 排序(上):为什么插入排序比冒泡排序更受欢迎?冒泡、插入、选择 O(n^2)快速、归并 O(nlogn)计数、基数、桶...原创 2019-12-15 15:37:48 · 223 阅读 · 0 评论 -
数据结构与算法之美--知识点五:递归
10 | 递归:如何用三行代码找到“最终推荐人”?基本上,所有的递归问题都可以用递推公式来表示一个问题的解可以分解为几个子问题的解这个问题与分解之后的子问题,除了数据规模不同,求解思路完全一样存在递归终止条件写递归代码的关键就是找到如何将大问题分解为小问题的规律,并且基于此写出递推公式,然后再推敲终止条件,最后将递推公式和终止条件翻译成代码堆栈溢出,限制递归深度为了避免重复计算,可...原创 2019-12-05 23:27:22 · 204 阅读 · 0 评论 -
数据结构与算法之美--知识点四:栈、队列
08 | 栈:如何实现浏览器的前进和后退功能?用数组实现的栈,叫做顺序栈;用链表实现的栈,叫做链式栈函数调用栈?表达式求值(保存操作数的栈、保存运算符的栈,操作符优先级比较),括号匹配内存中的堆栈和数据结构堆栈不是一个概念,可以说内存中的堆栈是真实存在的物理区,数据结构中的堆栈是抽象的数据存储结构。内存空间在逻辑上分为三部分:代码区、静态数据区和动态数据区,动态数据区又分为栈区和堆区。代码...原创 2019-12-02 18:22:34 · 190 阅读 · 0 评论 -
数据结构与算法之美--知识点三:链表
06 | 链表(上):如何实现LRU缓存淘汰算法?单链表、循环链表、双向链表、双向循环链表约瑟夫问题,双向链表。奇偶情况分析,找规律,数学归纳法。Java,LinkedHashMap,双向链表,用空间换时间LRU(Least Recently Used),最近最少使用策略,双向链表+散列表(Hash table)数组 vs. 链表:插入删除 随机访问数组简单易用,在实现上使用的是连续的...原创 2019-11-27 17:36:50 · 271 阅读 · 0 评论 -
数据结构与算法之美--知识点二:数组
05 | 数组:为什么很多编程语言中数组都从0开始编号?数组是一种线性表数据结构,它用一组连续的内存空间,来存储一组具有相同类型的数据。JVM标记清除垃圾回收算法。每次的删除操作并不是真正地搬移数据,只是记录数据已经被删除。当数组没有更多空间存储数据时,我们再触发执行一次真正的删除操作,这样就大大减少了删除操作导致的数据搬移。JVM 之垃圾回收算法(标记 -清除、复制、标记-整理、分代收集)...原创 2019-11-26 18:27:14 · 171 阅读 · 0 评论 -
数据结构与算法之美--开篇
文章目录开篇词 | 从今天起,跨过“数据结构与算法”这道坎01 | 为什么要学习数据结构和算法?02 | 如何抓住重点,系统高效地学习数据结构与算法?开篇词 | 从今天起,跨过“数据结构与算法”这道坎《算法导论》腾讯T4,长期负责手机QQ后台整体建设,用了不到半年时间,就把区块链的整个技术脉络摸清楚了。那些所谓的新技术,核心和本质的东西其实就是当初学的那些基础知识。(基础很重要,但是利用基础...原创 2019-11-25 19:00:24 · 279 阅读 · 0 评论 -
数据结构与算法之美--知识点一:复杂度分析
知识点一:复杂度分析03 | 复杂度分析(上):如何分析、统计算法的执行效率和资源消耗?04 | 复杂度分析(下):浅析最好、最坏、平均、均摊时间复杂度极客时间推出了一个60天攻克数据结构与算法的行动,准备参加下,希望通过这种方式巩固下自己的算法能力。这次活动,对文章进行了分类,会更系统一些。博客文章也会按照其对于知识点的分类分别发出来。03 | 复杂度分析(上):如何分析、统计算法的执行效率...原创 2019-11-25 18:49:27 · 215 阅读 · 0 评论 -
Algorithms - Week 2-1 Elementary Sorts
Selection Sort, Insertion Sort, Shell Sort, Shuffling, Convex Hull.原创 2015-09-06 12:59:31 · 996 阅读 · 0 评论 -
Algorithms - Week 4-1 Elementary Symbol Tables
Symbol Tables. Binary Search Trees. Deletion in BSTs.原创 2015-09-16 09:37:11 · 591 阅读 · 0 评论 -
Algorithms - Week 3-1 Quicksort
Quicksort. Selection. Duplicates.原创 2015-09-16 09:32:51 · 552 阅读 · 0 评论 -
Algorithms - Week 4-0 Priority Queues
Heap. Heap sort. Priority Queues.原创 2015-09-16 09:35:25 · 664 阅读 · 0 评论 -
Trie树
Trie树原创 2015-10-07 11:34:53 · 522 阅读 · 0 评论 -
最长回文子串
最长回文子串、Manacher算法,不使用Manacher算法情况下的优化。原创 2015-10-07 10:26:25 · 558 阅读 · 0 评论 -
Algorithms - Week 3-0 Mergesort
Mergesort, Bottom-up Mergesort, Comparators, Stability.原创 2015-09-06 13:01:00 · 662 阅读 · 0 评论 -
Algorithms - Week 2-0 Stacks and Queues
Stack、Queue、Generic、Iterator。原创 2015-09-04 15:10:32 · 541 阅读 · 0 评论 -
Algorithms - Week 1-1 Analysis of Algorithms
Analysis of Algorithms.深入浅出。原创 2015-09-04 15:08:55 · 704 阅读 · 0 评论 -
POJ-1007-DNA_Sorting
#核心思想:逆序数的计算。(分治法)***#注记:1. 分治法compute;compute;merge;(分别排序,计算)2. 二维字符串数组的初始化char **str;str = (char **)malloc(sizeof(char *) * strnum);for (i = 0; i < strnum; i++) {str[i] = (char *)malloc(sizeof原创 2014-07-15 11:01:26 · 673 阅读 · 0 评论 -
POJ-1001-Exponentiation
估计结果的长度,10的6次方的25c原创 2014-05-23 15:21:41 · 840 阅读 · 0 评论 -
POJ-1002-487-3279
核心思想:注记:1、估计结果的长度,10的6次方的25次方为151位,更精确的估计是100.001的25次方,加上小数点为126位。因此,字符串取127就够了(包含\0),实际上,126也可以,因为99.998的25次方的位数是125位。2、由于运算是由低位到高位的运算,为了简便,在运算时需要使得数字的低位在字符串的起始位置。3、10.000原创 2014-05-25 17:22:09 · 896 阅读 · 0 评论 -
POJ-1004-Financial Management
核心思想:相加,然后除以12。注记:原创 2014-05-27 17:10:56 · 704 阅读 · 0 评论 -
POJ-1005-I Think I Need a Houseboat
核心思想:数学题……注记:1、原创 2014-05-27 17:38:40 · 791 阅读 · 0 评论 -
POJ-1003-Hangover
核心思想:原创 2014-07-12 15:39:18 · 774 阅读 · 0 评论 -
POJ-1006-Biorhythms
核心思想:利用孙子定理解同余方程组来求解。原创 2014-07-12 15:42:21 · 863 阅读 · 0 评论 -
字符串转换成整数
LeetCode: String to Integer (atoi)Implement atoi to convert a string to an integer分析需要考虑的可能情况:空指针输入字符串前的空格字符串所表示数值的正负号结束条件,遇到非数字或者'\0'结束考虑溢出,分别与int值所能表示的最大(0x7fffffff)和最小值(0x原创 2014-11-01 00:01:12 · 1897 阅读 · 0 评论 -
全排列
问题描述permutationsGiven a collection of numbers, return all possible permutations.permutations-iiGiven a collection of numbers that might contain duplicates, return all possible unique p原创 2014-12-05 20:50:05 · 827 阅读 · 0 评论 -
POJ-2386-Lake_Counting
核心思想注记核心思想:深度优先搜索注记:《挑战程序设计竞赛》第二版,2.1.4,深度优先搜索输入时\n的处理如果逐个字符输入的话,需要处理行末的\n 如果使用gets的话,每一行字符串的最大长度应为100+1原创 2015-04-15 13:06:14 · 541 阅读 · 0 评论 -
算法设计与分析 - Week 3 分治策略
算法设计与分析公开课笔记。分治策略。原创 2015-08-05 20:38:39 · 1193 阅读 · 0 评论 -
不使用中间变量交换变量a、b的值的延伸
把不使用中间变量交换变量a、b的值扩展为不使用中间变量改变n个变量的值的顺序。原创 2014-04-27 20:13:39 · 1604 阅读 · 0 评论 -
POJ-1008-Maya_Calendar
核心思想:通过字符串的比较来实现Haab的月份转换。注记:Haab共有19个月,不要忘记"uayet"输出的第一行是数字……字符串数组的初始化char haabMonth[][7];*(haabMonth + i)和haabMonth[i]等价原创 2014-07-16 13:54:18 · 734 阅读 · 0 评论