数据结构冒险之旅
文章平均质量分 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 · 167 阅读 · 0 评论 -
冒泡排序优化及简单选择排序优化的实现与分析
简单选择排序及其优化原创 2021-06-24 12:06:50 · 339 阅读 · 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 · 294 阅读 · 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 · 306 阅读 · 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 · 418 阅读 · 0 评论 -
C++ 顺序表实现
(未用到class)** SequeList.h **#ifndef __SEQUELIST__H__#define __SEQUELIST__H__#include<cstring>#include<iostream>#include<assert.h>#define SLDATESIZE 100typedef int SLDATETYPE;typedef struct SL { SLDATETYPE *a; int size; int c原创 2021-05-09 16:35:34 · 136 阅读 · 0 评论