数据结构与算法
文章平均质量分 88
樱满无门
这个作者很懒,什么都没留下…
展开
-
piece table 的C语言简单实现
piece table 的C语言简单实现piece table的介绍piece table是文本编辑器领域的一个很重要的数据结构能实现文本编辑器的数据结构有很多,例如vi编辑器远古版本使用的一整块数组、块状链表、行链表、数组的改进GAP BUFFER等,还有本文要介绍的piece table。关于文本编辑器的各种实现方式,这篇论文给出了很详细的介绍https://pan.baidu.com/s/1tNuJ6trAStnr52z1QZDR4A关于piece table,这篇文章给出了很详细的说明原创 2021-01-18 15:38:07 · 510 阅读 · 0 评论 -
排序算法——归并排序(Merge Sort)
归并排序归并的英文是:Merge sort其实我们上一节shell排序的论文里面讲到的就是merge sortmerge sort的过程是,将数组分为许多的组,即将粗粒度的数组分为细粒度的数组,然后再将其合并它的优点是,同时对多个数据进行对比排序归并排序是分治法的典型应用分:体现在将数组分为小数组治:对排好序的数组进行合并现在举例对其过程进行分析:source:6, 202, 100, 301,38, 8, 1->divide6, 202, 100, 30138, 8, 1-原创 2020-12-15 13:43:47 · 560 阅读 · 0 评论 -
排序算法——shell排序(希尔排序)
Shell排序Shell排序,又称希尔排序,是我最喜欢的一种排序方式,也是我认为在简单的排序算法里效率最高、在效率高的排序算法里最简单的。(就像我,是成绩差的学生里代码最好的,在代码好的学生里成绩最差的(啊,这个好像没有什么好攀比的))接下来详细讲解下Shell排序的流程、复杂度使用到的网络资料链接:百度百科参考的书籍:C语言K&R首先使用《C语言K&R》上的代码作分析/* shellsort: sort v[0]...v[n-1] into increasing order原创 2020-12-15 13:41:08 · 2528 阅读 · 0 评论 -
跳表——SkipTable的简单实现
SkipTable的简单实现skiptable是一种高效的数据结构,增删改查的速度和红黑树不相上下,有着广泛的用途,例如大名鼎鼎的redis就是使用了skiptable作为核心的数据结构。skiptable的思想主要是随机化和二分法。首先介绍skiptable的模型长什么样子。它是链表的升级版。链表的查找速度为O(n),而skiptable的查找速度为O(lg n)。skiptable主要在链表上做了以下改动:为每一个元素生成随机的n层索引。level 4: 5level原创 2020-12-15 13:18:01 · 1063 阅读 · 0 评论 -
中序计算式的计算器模型C语言实现
#include <stdio.h>#include <stdlib.h>#include <math.h>#include <ctype.h>#include <stdbool.h>#define INIT_SIZE 100#define INCRE_SIZE 10#define OPERAND 1#define OPERATOR 2char _BUFFER[1000];int _POS;char myGetchar(原创 2020-12-14 14:59:26 · 366 阅读 · 2 评论