Loading

摘要: 13_跳表 二分查找底层依赖的是数组随机访问的特性,所以只能用数组来实现。 今天就是对链表稍加改造,使链表也支持类似二分的查找算法,这种改造后的链表结构叫做跳表(skip list)。 Redis中的有序集合(Sorted set)就是用跳表来实现的。 跳表的结构 原始链表结构: 跳表的结构: 那怎 阅读全文
posted @ 2022-07-02 09:58 你比从前快乐; 阅读(0) 评论(0) 推荐(0) 编辑
摘要: 12_二分算法(Binary Search) 二分思想 猜字游戏,我随机写一个0到99之间的数字,然后你来猜我写的是什么。猜的过程中,你每猜一次,我就会告诉你猜的大了还是小了,直到猜中为止。你来想想,如何快速猜中我写的数字呢? 假设我写的数字是23,你可以按照下面的步骤来试一试。(如果猜测范围的数字 阅读全文
posted @ 2022-07-01 10:20 你比从前快乐; 阅读(0) 评论(0) 推荐(0) 编辑
摘要: 11_如何选择一个合适的排序算法 如何选择 线性排序算法的时间复杂度比较低,适用场景比较特殊。所以要写一个通用的排序函数,不能选择线性排序算法。 如果是小规模的数据,进行排序时可以选择时间复杂度是O(n^2)的算法;如果是大规模数据排序,一般选择时间复杂度是O(nlogn)的算法更加高效。 快速排序 阅读全文
posted @ 2022-06-30 07:24 你比从前快乐; 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 10_线性排序 时间复杂度是O(n)的排序算法:桶排序、计算排序、基数排序。因为这些排序算法的时间复杂度是线性的,所以把这类排序算法叫做线性排序(Linear Sort)。 桶排序(Bucket sort) 顾名思义,会用到“桶”,核心思想是将要排序的数据分到几个有序的桶里,每个桶里的数据再单独进行 阅读全文
posted @ 2022-06-29 20:29 你比从前快乐; 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 09_排序(下) 归并排序(Merge Sort) 归并排序原理 核心思想:要排序一个数组,先把数组分成前后两部分,然后对前后两部分分别排序,再将排好的两部分合并在一起,这样整个数组就有序了。 归并排序使用的是分治思想。顾名思义,将一个大问题分解成小的子问题来解决。 而分治算法一般是用递归来实现的。 阅读全文
posted @ 2022-06-28 07:39 你比从前快乐; 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 08_排序(上) 经典、常用的排序算法 思考:插入排序和冒泡排序的时间复杂度相同,都是O(n^2),在实际的软件开发中,为什么我们更倾向于使用插入排序算法而不是冒泡排序算法? 如何分析一个排序算法 最好、最坏、平均情况时间复杂度 为什么要区分这三种时间复杂度呢?第一,有些排序算法会区分,为了好对比, 阅读全文
posted @ 2022-06-27 07:36 你比从前快乐; 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 1.官网下载安装包 redis-6.2.7.tar.gz 2.将其放在指定的目录进行解压缩‘ tar -zxvf redis-6.2.7.tar.gz 3.进行编译安装 提示:编译之前可以先更换为国内的镜像源,更快 注意安装redis需要gcc环境 # 查看 gcc 版本gcc --version 阅读全文
posted @ 2022-06-26 17:55 你比从前快乐; 阅读(0) 评论(0) 推荐(0) 编辑
摘要: cd /etc/apt​cp sources.list sources.bak.list​vim sources.list # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ 阅读全文
posted @ 2022-06-26 17:29 你比从前快乐; 阅读(0) 评论(0) 推荐(0) 编辑
摘要: 07_递归 写在最前 推荐注册返佣金的这个功能我想你应该不陌生吧?现在很多App都有这个功能。这个功能中,用户A推荐用户B来注册,用户B又推荐了用户C来注册。我们可以说,用户C的“最终推荐人”为用户A,用户B的“最终推荐人”也为用户A,而用户A没有“最终推荐人”。 一般来说,我们会通过数据库来记录这 阅读全文
posted @ 2022-06-26 15:24 你比从前快乐; 阅读(0) 评论(0) 推荐(0) 编辑
摘要: 06_队列 什么是队列 先进者先出,这就是典型的队列结构。 栈的操作:入栈(push())、出栈(pop()) 队列的操作:入队(enqueue())、出队(dequeue()) 队列和栈一样,也是一种操作受限的线性表数据结构。 顺序队列和链式队列 基于数组实现——顺序队列 基于链表实现——链式队列 阅读全文
posted @ 2022-06-26 09:46 你比从前快乐; 阅读(5) 评论(0) 推荐(0) 编辑