
数据结构与算法学习
Empereur。
一个想努力变强的小菜鸟~
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
二分查找算法实现思路及其代码演示
一、什么是二分查找?打开百度查找一下,它会给你以下一段话:二分查找也称折半查找(BinarySearch),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。从这段话,我们可以得到一个非常有价值的消息:二分查找只适用于有序排列序列什么意思呢?就是说你这个算法只能用于从大到小、或者从小到大排列好的有序序列。如果你存放数据的数组是无序的,那你首先还得给它排序一下。二、二分查找算法的具体思路首先如果我们有一个数组:{1,8,10,89,10原创 2020-05-18 10:11:27 · 496 阅读 · 0 评论 -
贪心算法实现思路及其代码演示
一、什么是贪心算法?去百度上搜索一下,它会给你提供下面一段话:贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择,选择的贪心策略必须具备无后效性,即某个状态以前的过程不会影响以后的状态,只与当前状态有关。由此我们可以进行一个简单的总结:所谓贪心算法,不就是解决问题时,选出最简单的、最快捷的方式嘛!那么在解决哪些问题上时,我们可以使用上原创 2020-05-17 09:57:55 · 3020 阅读 · 0 评论 -
kmp算法实现思路及其代码演示
一、什么是kmp算法?去百度上搜素一下,你会得到下面一段话:KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt提出的,因此人们称它为克努特—莫里斯—普拉特操作(简称KMP算法)。KMP算法的核心是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。具体实现就是通过一个next()函数实现,函数本身包含了模式串的局部匹配信...原创 2020-05-06 15:38:08 · 791 阅读 · 0 评论 -
数据结构之稀疏数组的实现
数据结构之稀疏数组的实现一、概述当我们编写一个二维数组时,可能会存在着许多数据重复的情况,如下图:这样可能会造成程序的运行缓慢,不够简洁。那么我们是否能有一种方式,将这个数组压缩,使其化简为一个简洁、不冗余的二维数组呢? 下面就引出我们稀疏数组的概念。二、概念下图为原二维数组转换为稀疏数组的样式:1. 其第一行第一列代表原二维数组的行数2. 其第一行第二列代表原二维数组的列数...原创 2020-04-26 13:15:29 · 361 阅读 · 1 评论