iPine's Blog

看似无意义的事,竟是有意义的


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 搜索

排序

发表于 2018-11-03 | 分类于 technique summary
三种时间复杂度是 O(n) 的排序算法:桶排序、计数排序、计数排序。这些排序算法的时间复杂度是线性的,因而也叫线性排序。之所以能做到线性的复杂度,主要原因这三种算法都是非基于比较的排序算法,不涉及元素间的比较操作;但是这几种排序算法对数据的要求很苛刻,因而需要重点掌握它们的使用场景。 问题 如何根 ...
阅读全文 »

排序

发表于 2018-11-02 | 分类于 technique summary
之前说的,冒泡排序、插入排序、选择排序三种算法的时间复杂度都是O(n^2),很高,适用于小规模数据的排序。 而,归并排序和快速排序,适用于大规模的数据排序,更为常用。 问题 归并排序和快速排序都用到了分治思想,借助这个思想可以解决非排序问题。 如何在O(n)的时间复杂度内查找一个无序数组中的第K ...
阅读全文 »

排序

发表于 2018-10-30 | 分类于 technique summary
问题思考 插入排序和冒泡排序的时间复杂度相同,都是O(n^2),在实际软件开发里,为什么更倾向于使用插入排序算法而不是冒泡排序算法呢? 如何分析一个排序算法 排序算法的执行效率 1 . 最好情况、最坏情况、平均情况时间复杂度 分析排序算法的时间复杂度是,要分别给出最好情况、最坏情况、平均情况下 ...
阅读全文 »

递归

发表于 2018-10-29 | 分类于 technique summary
应用场景 很多APP都有推荐用户注册返佣金或奖励的功能。在这个功能中,用户A推荐用户B来注册,用户B又推荐用户C来注册。那么用户C的最终推荐人就为A,用户B的最终推荐人也为A,用户A没有最终推荐人。在数据库表中,可以记录两行数据,其中user_id表示用户ID,referrer_id表示推荐人ID ...
阅读全文 »

队列

发表于 2018-10-16 | 分类于 technique summary
引言 CPU资源有限,任务的处理速度与线程个数并不是线性正相关。过多的线程会导致CPU频繁切换,处理性能下降。 当我们向固定大小的线程池中请求一个线程时,如果线程池中没有空闲资源了,这个时候线程池如何处理这个请求?是拒绝请求还是排队请求?各种处理策略又是怎么实现的呢? 这就需要用到队列这个数据结构 ...
阅读全文 »

栈

发表于 2018-10-13 | 分类于 technique summary
思考 首先思考一个问题,浏览器的前进、后退功能是如何实现的呢? 理解栈 栈结构:先进的后出,后进的先出。类似于洗好的盘子,叠一摞,下次用的时候只能从最上面那个盘子开始拿。 操作特性:操作受限的线性表 什么时候用:当某个数据集合只涉及在一端插入和删除数据,并且满足后进先出的特性,就应该首选栈这种 ...
阅读全文 »

链表

发表于 2018-10-11 | 分类于 technique summary
主要学习几个写链表代码的技巧 理解指针或引用的含义 有些语言有指针概念,比如C语言;有些语言没有指针,取而代之的是引用,比如Java、Python。不管“指针”还是“引用”,都是一个意思,指存储所指对象的内存地址。 指针含义:将某个变量(对象)赋值给指针(引用),实际上就是就是将这个变量(对象) ...
阅读全文 »

链表

发表于 2018-10-10 | 分类于 technique summary
如何用链表实现LRU缓存淘汰算法? 缓存 缓存定义:一种高效数据读取性能的技术,比如常见的CPU缓存、数据库缓存、浏览器缓存等。缓存在计算机软件、硬件开发中应用都很广。 缓存特点:大小有限,被用满时,需要清理一部分数据,而哪些数据应该被清理哪些应该被保留,由缓存淘汰策略决定。 缓存淘汰策略 ...
阅读全文 »

数组

发表于 2018-10-09 | 分类于 technique summary
数组定义 一组线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。 关键词解释 线性表:每个线性表上的数据最多只有前和后两个方向。 除了数组,链表、队列、栈都是线性表结构 联想到非线性表:数据之间并不是简单的前后关系。 如,二叉树、堆、图等 连续的内存空间和相同类型的数据 ...
阅读全文 »

算法复杂度分析

发表于 2018-09-29 | 分类于 technique summary
先举个栗子 分析以下这段代码的时间复杂度 // n 表示数组 array 的长度 int find(int[] array, int n, int x) { int i = 0; int pos = -1; for (; i < n; ++ ...
阅读全文 »
1234…7
iPine

iPine

Hello, it's me

63 日志
10 分类
22 标签
GitHub E-Mail
Links
  • Leeon Notes
© 2018 — 2019 iPine
由 Hexo 强力驱动
|
主题 — NexT.Mist v5.1.4