排序:
默认
按更新时间
按访问量

十二、二叉树

大纲: 树、二叉树 二叉查找树 平衡二叉查找树、红黑树 递归树 一、树(Tree) 1、树的相关概念 (1)节点 其中,每个元素称为“节点”;用来连接相邻节点之间的关系,成为“父子关系”。其他概念:“父节点、子节点、兄弟节点,根节点,叶子节点或叶节点” ==》A 节点...

2018-11-18 11:05:52

阅读数:22

评论数:0

十一、哈希算法

业界著名的哈希算法也有很多,比如 MD5、SHA 等。 侧重点:在实际应用中,如何用哈希算法解决问题? 一、概述 哈希算法:将任意长度的二进制值串映射为固定长度的二进制值串的映射规则; 哈希值:通过原始数据映射之后得到的二进制值串。 二、哈希算法的设计要求 从哈希值不能反向推导出原...

2018-11-12 10:08:10

阅读数:46

评论数:0

十、散列表(Hash Table)

一、概述 散列表(Hash Table),也称“哈希表”或者“Hash 表” 1、相关概念 原始数据叫作键(键值)或关键字(key); 将原始数据转化为数组下标的映射方法称为散列函数(或“Hash 函数”“哈希函数”,hash function); 而散列函数计算得到的值就叫...

2018-11-07 16:06:43

阅读数:6

评论数:0

九、跳表(Skip List)

一、概述 跳表是一种在各个方面都比较优秀的动态数据结构,可支持快速的插入、删除、查找操作,甚至可以替代红黑树(Red-black Tree) 应用:Redis 中的有序集合(sorted set)是用跳表实现的。 基本思想 结合 链表 和 二分法 的特点,将链表进行加工,创造一个二...

2018-10-29 17:30:50

阅读数:12

评论数:0

八、二分查找(Binary Search)

一、概述 二分查找(Binary Search,也称折半查找)——针对有序数据集合的查找算法 1、基本思想 类似分治思想,每次都通过跟区间的中间元素进行对比,将代查找的区间缩小为之前的一半,直到找到要查找的元素,或者区间被缩小为0(不存在该元素)。 2、时间复杂度分析——O(log...

2018-10-28 17:44:20

阅读数:21

评论数:0

七、排序(4)——qsort()

一、回顾 时间复杂度 是稳定排序 是原地排序 冒泡排序 O(n2) √ √ 插入排序 O(n2) √ √

2018-10-28 17:43:37

阅读数:21

评论数:0

七、排序(3)——线性排序

时间复杂度是 O(n) 的排序算法:桶排序、计数排序、基数排序,也称线性排序,他们都不是基于比较的排序算法。 一、桶排序 1、基本思想 将要排序的数据分到几个有序的桶里,每个桶里的数据再单独进行进行排序。桶内排完序之后,再把每个桶里的数据按照顺序依次取出,从而形成有序序列。 2、桶排序...

2018-10-28 17:43:02

阅读数:15

评论数:0

七、排序 (2)

七、排序(一)

2018-10-28 17:27:56

阅读数:6

评论数:0

七、排序(1)

一、排序的概述 1、最经典、最常用的排序方法: 冒泡排序、插入排序、选择排序、归并排序、快速排序、计数排序、基数排序、桶排序。 2、分类: 排序方法 时间复杂度 是否基于比较 1 冒泡、插入、选择 O(n2) √ 2 快排...

2018-10-22 09:17:24

阅读数:17

评论数:0

六、递归(Recursion)

一、递归概述 应用:DSF深度优先搜索、前中后序二叉树遍历等 三个条件: 一个问题的解可以分解为几个子问题的解 该问题与分解之后的子问题,除了数据规模不同,求解思路完全一样 存在递归终止条件 写递归代码的关键: 如何将大问题分解为小问题的规律 =》写出递归公式 确定...

2018-10-22 09:15:46

阅读数:18

评论数:0

五、队列(Queue)

一、概述 队列(queue): 只允许在一端进行插入 (队尾) 操作,而在另一端 (队头) 进行删除操作的线性表。 队头:删除操作的一端——front 队尾:插入操作的一端——rear 特点:先进先出(First In First Out) 其他常用队列:循环队列、阻塞队列、...

2018-10-22 09:14:34

阅读数:17

评论数:0

四、栈

前言 应用:浏览器的前进、后退功能 一、栈的概述 栈(stack)是限定仅在表尾(栈顶)进行插入和删除操作的线性表。 栈顶(top):允许插入和删除的一端,另一端成为栈底(bottom) 后进先出(Last In First Out,LIFO),先进后出 ==》只允许在一端插入...

2018-10-16 21:33:14

阅读数:12

评论数:0

三、链表(实践)

一、数据结构 1、单向链表 结点包括:数据域 + 指针域 数据域:存储数据元素的值 指针域(链域):存储下一个结点地址或者指向其后继结点的指针 struct Node{ int data; Node * next; } 2、双向链表 结点包括:数据域...

2018-10-15 09:35:22

阅读数:14

评论数:0

三、链表(Linked List)(原理)

前言 经典的链表应用场景:LRU 缓存淘汰算法 缓存是一种提高数据读取性能的技术,由于缓存的大小有限,当缓存被用满时,哪些数据应该被清理出去,哪些数据应该被保留?这就需要缓存淘汰策略来决定。 常见的策略有三种: 先进先出策略 FIFO(First In,First Out) 最少...

2018-10-13 16:10:00

阅读数:13

评论数:0

二、数组

发布文章 博文管理我的博客退出 Trash Temp 【数据结构与算法】 【数据结构与算法】 【数据结构与算法】 【数据结构与算法】 【数据结构与算法】 【数据结构与算法】 ...

2018-10-12 22:46:09

阅读数:169

评论数:0

一、概述

一、絮絮叨叨 计划写一系列数据结构与算法的博客: 一是给自己立个flag——坚持做完, 二是记录自己的学习过程,总结和分享知识 1、Why? 面试 =》考查基础 =》数据结构与算法 工作 =》有助于理解、使用框架;优化程序,提升效率、性能 锻炼逻辑思维能力 =》提升个人竞...

2018-10-12 15:21:38

阅读数:30

评论数:0

Ubuntu下pip3的安装、升级、卸载

(1) 安装 sudo apt-get install python3-pip (2)升级 sudo pip3 install --upgrade pip (3)卸载 sudo apt-get remove python3-pip

2018-09-23 12:10:51

阅读数:63

评论数:0

PyCharm专业版永久激活

概述 pycharm是很强大的开发工具,但是每次注册着实让人头疼。网络上很多注册码、注册服务器等等、但都只是一年或者不能用;为次有如下解决方案。亲测有效!!! 1、下载和安装 首先下载pycharm专业版,百度搜索就可以下到。https://www.jetbrains.com/pycha...

2018-08-25 17:28:08

阅读数:321

评论数:0

IntelliJ IDEA 安装问题解决

报错: ‘tools.jar’ is not in IDEA classpath. Please ensure JAVA_HOME points to JDK rather than JRE. 解决方案:Be sure you have a JDK installed on your s...

2017-10-27 17:30:21

阅读数:232

评论数:0

[论文翻译]Pedestrian Alignment Network for Large-scale Person Re-Identification

传送门: https://arxiv.org/pdf/1707.00408.pdf https://github.com/layumi/Pedestrian_Alignment 摘要 Person re-Identification 常被当做一个图像检索问题,其目的是 search ...

2017-09-02 22:16:06

阅读数:1760

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭