数据结构与算法
Triorwy
Tomorrow is another chance.
展开
-
实现动态顺序表的增,删,插,改,查找,排序
实现动态顺序表的增,删,插,改,查找,排序原创 2017-12-18 23:55:23 · 278 阅读 · 0 评论 -
堆的创建及应用-详细解释
堆(英语:heap)通常是一个可以被看做一棵树的数组对象。 堆总是满足下列性质:堆中某个节点的值总是不大于或不小于其父节点的值;堆总是一棵完全二叉树。将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。常见的堆有二叉堆、斐波那契堆等。 堆的定义如下:n个元素的序列{k1,k2,ki,…,kn}当且仅当满足下关系时,称之为堆。 (ki <= k2i,ki ...原创 2018-02-28 15:16:21 · 377 阅读 · 0 评论 -
深入了解哈希表操作(开放定址法-拉链法)
解决哈希冲突两种常见的方法是:闭散列和开散列闭散列:也叫开放地址法开散列:也叫拉链法原创 2018-03-07 16:20:31 · 1189 阅读 · 0 评论 -
二叉搜索树的删,查,插(递归&非递归)
二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。如下图示: int a[] = { 5, 3, 4, 1, 7, 8, 2, 6, 0, 9 ...原创 2018-02-27 16:19:52 · 304 阅读 · 0 评论 -
逆波兰表达式(栈的应用)
逆波兰表达式(栈的应用)原创 2018-01-29 16:37:16 · 536 阅读 · 0 评论 -
构建栈和队列
栈和队列的构建原创 2018-01-29 16:48:52 · 300 阅读 · 0 评论 -
迷宫问题(栈的应用)
迷宫问题(栈的应用例子)原创 2018-01-29 16:27:03 · 642 阅读 · 0 评论 -
双向链表的增-删-查-逆序
双向链表增删查改原创 2018-01-26 18:33:35 · 274 阅读 · 0 评论 -
时间复杂度和空间复杂度的理解
一个算法的时间复杂度其实就是这个算法跑过的次数 eg:void test(){ int i = 0; int j = 0; int k = 0; int count = 0; int count1 = 0; for(i;i<n;i++) { for(j;j<n;j++) {原创 2017-12-09 20:17:34 · 1130 阅读 · 0 评论 -
海量数据处理问题分析
哈希切割top K问题给一个超过100G大小的log file, log中存着IP地址, 设计算法找到出现次数最多的IP地址?将100G的log file 哈希切分成1000份,为什么不切成100份因为100份中不一定每个文件大小都是1G,有的文件可能要5,6个G的,因为有哈希冲突,可能某个文件哈希冲突多文件大小要10G左右了,因此哈希切分成1000份,每份100M这样最多...原创 2018-03-08 22:15:14 · 269 阅读 · 0 评论