sl数据结构学习笔记
数据结构学习笔记C++实现
try my best c
这个作者很懒,什么都没留下…
展开
-
21_大数据查重-位图
理论讲解 代码实现 #include <iostream> #include <vector> #include <stdlib.h> #include <time.h> #include <memory> using namespace std; /* 有1亿个整数,最大值不超过1亿,问都有哪些元素重复了?谁是第一个重复的?谁是第一个不重复的(1个位保存数据的状态,2个位保存数据的状态)? 内存限制100M 1亿 = 100M 100M原创 2022-03-15 11:01:17 · 68 阅读 · 0 评论 -
22_布隆过滤器
##理论讲解 ##代码实现 #include <iostream> #include <vector> #include "stringhash.h" #include <string> using namespace std; // 布隆过滤器实现 class BloomFilter { public: BloomFilter(int bitSize = 1471) : bitSize_(bitSize) { bitM原创 2022-03-15 10:58:44 · 51 阅读 · 0 评论 -
24_大数据top k-快排分割
大数topk分割代码实现原创 2022-03-15 10:56:06 · 3579 阅读 · 0 评论 -
25_一致性哈希算法
一致性哈希算法,C++代码的实现原创 2022-03-15 10:49:36 · 51 阅读 · 0 评论 -
09_链式队列
理论讲解 代码实现 #include <iostream> using namespace std; // 链式队列 class LinkQueue { public: LinkQueue() { head_ = new Node(); head_->next_ = head_; head_->pre_ = head_; } ~LinkQueue() { Node* p = head_->next_; while (p != head_)原创 2022-03-14 16:32:38 · 43 阅读 · 0 评论 -
11_基础排序
理论讲解 代码实现 #include <iostream> #include <stdlib.h> #include <time.h> using namespace std; // 冒泡排序算法 void BubbleSort(int arr[], int size) { for (int i = 0; i < size-1; i++) // 趟数 O(n) * O(n) = O(n^2) { bool flag = false; // 一趟原创 2022-03-14 16:30:14 · 1031 阅读 · 0 评论 -
19_链式哈希表
理论讲解 代码实现 #include <iostream> #include <vector> #include <list> #include <algorithm> using namespace std; // 链式哈希表 class HashTable { public: HashTable(int size = primes_[0], double loadFactor = 0.75) : useBucketNum_(0) , loa原创 2022-03-14 16:28:22 · 87 阅读 · 0 评论 -
18_线性探测哈希表
理论讲解 代码实现 #include <iostream> using namespace std; // 桶的状态 enum State { STATE_UNUSE, // 从未使用过的桶 STATE_USING, // 正在使用的桶 STATE_DEL, // 元素被删除了的桶 }; // 桶的类型 struct Bucket { Bucket(int key = 0, State state = STATE_UNUSE) : key_(key) , state_原创 2022-03-14 16:26:54 · 72 阅读 · 0 评论 -
39图的代码实现
理论讲解 代码实现 #include <iostream> #include <string> #include <vector> #include <list> #include <queue> using namespace std; // 实现一个有向图的邻接表结构 class Digraph { public: // 从配置文件读入顶点和边的信息,生成邻接表 void readFile(string filePath)原创 2022-03-14 15:51:10 · 44 阅读 · 0 评论 -
37倒排索引
// 37_倒排索引.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // #include <iostream> #include <string> #include <list> #include <vector> #include <unordered_map> #include <algorithm> using namespace std; #undef UNICODE #include &...原创 2022-03-14 15:46:06 · 65 阅读 · 0 评论 -
30跳跃表
跳跃表(快表得代码实现和原理)原创 2022-03-14 15:38:31 · 281 阅读 · 0 评论 -
36字典树代码实现
理论讲解 代码实现 #include <iostream> #include <string> #include <map> #include <vector> #include <queue> using namespace std; // Trie字典树 class TrieTree { public: TrieTree() { root_ = new TrieNode('\0', 0); } ~TrieTree() {原创 2022-03-14 15:35:49 · 58 阅读 · 0 评论 -
21大数查重位图法代码实现
// 21_大数据查重-位图.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // #include <iostream> #include <vector> #include <stdlib.h> #include <time.h> #include <memory> using namespace std; /* 有1亿个整数,最大值不超过1亿,问都有哪些元素重复了?谁是第一个重复的?谁是第一个不重复的(1个位保.原创 2022-03-14 15:33:33 · 348 阅读 · 0 评论 -
04_双向链表
// 04_双向链表.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // #include <iostream> using namespace std; // 定义双向链表的节点类型 struct Node { Node(int data = 0) : data_(data) , next_(nullptr) , pre_(nullptr) {} int data_; // 数据域 Node* next_; // 指向下一个节点 Nod原创 2022-03-14 15:31:55 · 2002 阅读 · 0 评论 -
10二分搜索
理论讲解 非递归代码实现 // 二分搜索的非递归实现 int BinarySearch(int arr[],int size,int val) { int first=0; int last=size-1; while(first<=last) { int mid=(first+last)/2; if(arr[mid]==val) { return mid; } e原创 2022-03-08 22:35:17 · 36 阅读 · 0 评论 -
40floyd算法
理论讲解 代码实现 #include<iostream> #include<vector> #include<math.h> using namespace std; using uint=unsigned int; const int INF= INT32_MAX; int main(void) { vector<vector<uint>> graph= { {0,6,3,INF,INF,INF},原创 2022-03-08 22:12:54 · 55 阅读 · 0 评论 -
39Dijkstra算法的实现
理论讲解 代码实现 #include<iostream> #include<vector> using namespace std; using uint=unsigned int; const int INF= INT32_MAX; // 迪杰是斯拉算法接口 int Dijkstra(vector<vector<uint>> &graph, int start, //起点原创 2022-03-08 21:42:25 · 65 阅读 · 0 评论 -
哈夫曼编码
哈夫曼编码 理论 代码实现 #include<iostream> #include<unordered_map> #include<queue> #include<string> #include<functional> using namespace std; // 实现哈夫曼树 using uint=unsigned int; class HuffmanTree { public: HuffmanTree():minHeap_([原创 2022-03-08 16:49:24 · 88 阅读 · 2 评论