数据结构冒险之旅
文章平均质量分 72
FeatherWaves
这个作者很懒,什么都没留下…
展开
-
unsigned与signed的不期而遇——KMP算法中应该规避的错误
问题现象: 前几天写KMP算法时,测试样例时发生了错误。 #include <iostream> #include <string> using namespace std; const int N = 100010; int next_[N]; void getNext(const string& dest) { int i = 0, j = -1; next_[0] = -1; while (i < dest.size()) { if (j == -1原创 2021-10-31 21:25:17 · 148 阅读 · 0 评论 -
冒泡排序优化及简单选择排序优化的实现与分析
简单选择排序及其优化原创 2021-06-24 12:06:50 · 318 阅读 · 3 评论 -
堆排序实现及分析
文章目录堆排序代码实现(升序)结果分析原理分析思路分析代码Ⅰ分析向下调整算法(函数AdjustDown)第一个if判断(判断两个孩子的大小)第二个if判断(判断较大的孩子与父节点的大小)Ⅱ堆排序的主体部分第一个循环(for)(自低向上建堆)第二个循环(while)分析时间复杂度 堆排序 代码实现(升序) void Swap(int& a, int& b) { int tmp = a; a = b;; b = tmp; } void AdjustDown(int* a, int n, i原创 2021-06-22 14:45:07 · 274 阅读 · 2 评论 -
直接插入排序和希尔排序实现及分析
文章目录直接插入排序代码实现(升序)结果分析原理分析思路分析代码Ⅰ分析n-1Ⅱ分析end的作用Ⅲ分析breakⅣ分析a[end + 1] = tmp语句分析时间复杂度希尔排序代码实现(升序)结果分析原理分析思路分析代码分析gap第一类(int gap = n; gap > 1; gap /= 2;)第一个问题第二个问题第二类(for 循环中控制次数的 n - gap操作)第三类(end 与 gap 的之间,并且还有一个end -= gap)分析时间复杂度 直接插入排序 代码实现(升序) void In原创 2021-06-21 20:48:19 · 281 阅读 · 0 评论 -
C++ 顺序表实现及分析
文章目录一、头文件声明部分二、源文件实现部分三、分析1、初始化工作2、收尾工作3、打印出顺序表中元素4、调整容量Ⅰ该环节在全局规划的分析Ⅱ环节内容分析5、尾插、头插、特定位置插入6、尾删、头删、特定位置删除7、查找元素8、特定位置修改 一、头文件声明部分 #ifndef __SEQLIST_H__ #define __SEQLIST_H__ #include<iostream> #include<cassert> using namespace std; typedef int D原创 2021-06-20 12:21:48 · 375 阅读 · 0 评论 -
C++ 顺序表实现
(未用到class) ** SequeList.h ** #ifndef __SEQUELIST__H__ #define __SEQUELIST__H__ #include<cstring> #include<iostream> #include<assert.h> #define SLDATESIZE 100 typedef int SLDATETYPE; typedef struct SL { SLDATETYPE *a; int size; int c原创 2021-05-09 16:35:34 · 117 阅读 · 0 评论