数据结构 简介

简介

数据结构是存储、组织数据的方式。它包含三方面的内容,逻辑关系、存储关系及操作。可分为线性结构和非线性结构。

线性结构

数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的。
常用的线性结构有:线性表,栈,队列,双队列,串(一维数组)。

[稀疏数组]

存储结构

顺序存储结构:一组地址连续的存储单元依次存储线性表的各个数据元素
链式存储结构:一组任意的存储单元来存储线性表的数据元素,这些单元可以分散在内存中的任意位置

非线性结构

各个数据元素不再保持在一个线性序列中,每个数据元素可能与零个或者多个其他数据元素发生联系。
常见的非线性结构有:二维数组,多维数组,广义表,树(二叉树等),图

跳转查找 Jump search

图解

使用已排序数组是这个算法的先前条件。从左边开始每次跳过一定的长度,如果发现搜寻的数字在上一个跳过的数据里再往回用线性搜索。

阅读更多

KMP算法

简介

kmp算法也称为字符串查找算法,可以确认当前字符串中是否包含目标字符串。 当出现字符串不匹配时,可以记录一部分之前已经匹配的文本内容,利用这些信息避免从头再去做匹配。

阅读更多