数据结构
文章平均质量分 68
fanfan_1120
一个正在学习软件编程路上的小人人
展开
-
STL——set & map的使用
set set实现了红黑树(RBTree)平衡二叉搜索树的数据结构,模板参数为key,相当于是K模型的集合。 在插入元素时会自动调整二叉树,使其尽量保持平衡,以至于在树中进行搜索时,能够达到logn的搜索效率,对于重复插入的值,会插入失败。使用时,记得加上头文件哦!#include <set>1 元素的插入 set.insert()void test_set(){ s...原创 2018-04-04 19:56:09 · 202 阅读 · 0 评论 -
海量数据处理
海量数据处理:是针对数据量较大,导致内存不足或十分占内存的情况而有的解决算法1 给一个超过100G大小的log file, log中存着IP地址, 设计算法找到出现次数最多的IP地址?【问题分析】(1)日志文件一般为一行一条日志,并且有一定的格式,每一条日志中含一个IP地址,我们可以看一下这个笔记的日志信息,简单有一个认识:(2)日志文件共100G,占用内存过大,可以尝试对100G的文件进行切分,...原创 2018-05-06 23:13:13 · 280 阅读 · 0 评论 -
排序算法——插入排序&希尔排序&堆排
例:给定数组A[] = { 3, 7, 4, 6, 2, 1, 5, 8},对数组进行升序排序插入排序 思想: (1)按照给定数组 A 的顺序将数据依次进行插入,每插入一个数据 Ai 时,将该数据 Ai 与 A(i-1) 进行比较; (2)如果比 A(i-1) 大,则直接放到 A(i-1)后面; (3)如果比A(i-1)小,则继续和A(i-2)进行比较,直至找到 Ai 应插入的正确位置...原创 2018-08-14 20:49:39 · 264 阅读 · 0 评论 -
排序算法——冒泡&选择&快排&归并
冒泡排序 思想: (1)将相邻的两个数 Ai 和 A(i+1) 进行比较,如果 A(i+1) 较大,则交换 Ai 和 A(i+1) ; (2)如果 Ai 较大,则不交换; (3)每次排序后都将未排序好的最大的数冒到指定位置。时间复杂度:O(N^2)每次排序结果: 代码:void bubble_sort(int* a, int n){ int flag = 0...原创 2018-08-15 20:00:50 · 278 阅读 · 0 评论