![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
KingfarOu
这个作者很懒,什么都没留下…
展开
-
散列表:从原理到Java实例
起源:符号表学习散列表之前,我们先来了解一下散列表是什么,它有什么用。散列表是符号表的其中一个实现方式(其它的实现方式有例如红黑树),那么问题就变成了符号表是什么,它又有什么用,符号表用于实现如下功能:需要将两个元素进行关联存储(两个元素分别称为“键”和“值”),并且需要根据“键”获取对应“值”。举几个例子来说明一下,例如投票,我们会记录候选人(或者候选项)的名字及其对应的票数,每读取一张选票,就找到选票上写的候选人的名字,将他的得票数加一,投票结束,我们会公布得票数最高的候选人,或者公布所有候选人的原创 2020-05-14 14:29:04 · 601 阅读 · 2 评论 -
一步步地分析排序——优先队列和堆排序
本文框架定义和使用场景优先队列是一个抽象数据类型,和栈、队列类似,它们都是抽象数据类型,相当于一个Java类,有自己的属性,并对外提供API。在了解它有什么API之前,先来看看优先队列的使用场景。优先队列适用于需要对集合不断地执行插入元素、删除最大(或最小)元素的场景。这个场景大体可以分为两类:第一类是业务实际情况需要,比如CPU的任务调度,待执行的任务是一个集合,每启动一个新程序就是在...原创 2020-01-11 17:10:35 · 1170 阅读 · 2 评论 -
算法 动态连通性--如何设计和分析算法
本文是对《算法》(橙色那本)动态连通性问题的学习笔记。我想通过这篇笔记,整理出设计和分析算法的过程来。原创 2016-07-29 14:47:41 · 4556 阅读 · 7 评论 -
一步步地分析排序——选择排序
概述本文是对《算法》第四版选择排序所做的笔记,选择排序是书本里面的首个排序算法,同时也是基础排序算法里面较简单的一个。虽然算法本身是很简单,但是通过一个简单算法,学习算法的分析过程,还是相当有意义的。本文的脉络如下原创 2016-09-25 20:31:24 · 698 阅读 · 0 评论 -
一步步地分析排序——插入排序
一步步地分析插入排序原创 2016-09-28 15:14:40 · 2496 阅读 · 0 评论 -
一步步地分析排序——归并排序
前言归并排序的概念归并排序是基于“归并”这个操作得出的排序方法,所谓归并,就是将两个分别有序的数组合并(归并)成一个更大的有序的数组。那么归并排序就可以这样描述:要将一个数组排序,可以先(递归地)将它分成两半分别排序,然后将结果(两个分别有序的数组)归并成一个更大的有序的数组。再来看看图解过程:对左、右子数组进行排序的过程,其实也是通过归并操作来实现的,所以,实际上,真正在执行“排序”行...原创 2019-01-06 17:25:49 · 3923 阅读 · 2 评论