毕业半年, 平时工作总是关注业务、架构,而却越来越少关注运算性能, 也再也没有做过任何涉及算法的工作了 希望有时间把这些拉下的东西拾起来,毕竟不论是使用什么语言,从事什么行业,只要是程序员,算法才是真正的基础。 题目来自leetcode,代码语言通常为C/C++,后期可能个别题目会用Golang
[读书笔记·编程珠玑] 数组移位算法的不断优化,4种方法。
汉诺塔的递归实现及解析
这是我的第三个面试题汇总。 想看之前的内容请移步http://zhweizhi.blog.51cto.com/10800691/1763237 若干数据结构 && 算法面试题【一】更新完毕http://zhweizhi.blog.51cto.com/10800691/1775780 若干数据结构 && 算法面试题【二】更新完毕http:
这篇文章介绍一下基本的排序树和它相应的实现代码值得注意的是,这里讲的是最普通的排序树,不考虑平衡的问题,它的增、删、查、改 时间复杂度都是 O(N) ~ O(log2(N) ) 对结点的定义template<class K, class V> struct BSTNode { BSTNode(const K&nbs
先贴纯代码,有空再填坑template<class K, class V> struct BSTNode { BSTNode(const K &key, const V &value) :_key(key) ,
有关比较排序的算法的介绍,在这里: http://zhweizhi.blog.51cto.com/10800691/1786367 ——————————————————————————————————这里主要介绍非比较排序算法。非比较排序主要有2种算法,分别是:计数排序(CountSort)基数排序(RadixSort) 一、计数排序计数排序的实现需要借助哈希表。思路
这里介绍一下常用的比较排序算法,以及它们的实现。有关非比较排序的内容,在这里:http://zhweizhi.blog.51cto.com/10800691/1786369 —————————————————————————————————— 比较排序,按照排序的方式,分为:插入排序、选择排序、交换排序、归并排序这四大类。 其中还可以再细分为8种排序:
哈希表这种数据结构能够非常快速的查找元素但它的缺点是空间效率不高位图提高了空间效率但位图只能用来判断元素是否存在关于位图的实现,在这里http://zhweizhi.blog.51cto.com/10800691/1784383 下面简单介绍一下布隆过滤器。现在,假如通过哈希算法,将一个字符串转化成int类型的数据,通过简单的线性探测(为什么不用其他方式,比如二次探测或者开链法呢?应该还是考虑了效
哈希和位图都能迅速的查找元素区别在于,哈希能查找并访问元素,但空间利用率不高而位图仅能用来判断元素是否存在下面是位图的实现:using namespace std; class BitMap { public: BitMap(size_t n) :_size(0) { _a.resize( (n >> 5
哈希表开链法 仿函数
这是我的第二个面试题汇总。想看之前的内容,请移步:http://zhweizhi.blog.51cto.com/10800691/1763237 (若干数据结构 && 算法面试题【一】(更新完毕))http://zhweizhi.blog.51cto.com/10800691/1787562 (若干数据结构 && 算法面试题【三】(更新中))一、
前序线索化:void _PrevOrderThreading(Node *cur, Node *& prev) { if(cur == NULL) { &
题目描述:对于一个字符串,和字符串中的某一位置,请设计一个算法,将包括i位置在内的左侧部分移动到右边,将右侧部分移动到左边。给定字符串A和它的长度n以及特定位置p,请返回旋转后的结果。测试样例:"AbcdeFgh",8,4 (为了方便起见我把两部分的起始元素用大写字母表示)返回:"FghAbcde"思路:·方法一:将整个字符串左移或右移(p - 1)次·方法二: 将要分成的前部分或后部
一、两个栈实现一个队列http://zhweizhi.blog.51cto.com/10800691/1762077 二、实现一个栈要求:实现一个栈,要求实现Push(出栈)、Pop(入栈)、Min(返回最小值的操作)的时间复杂度为O(1)为了在O(1)时间内取到栈内元素的最小值,显然遍历是行不通的。我们需要在入栈和出栈的操作中记录最小值。如果用一个变量(假设叫m)在入栈时记录并保存最小值,假如这
前言:我的地图文件(MazeMap.txt)如下:size:(a,a) 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1
下面这段代码是我定义的Stack类模板,接下来介绍几种用2个该Stack类实现队列Queue的几种方法。template<class T, int DEFAULT_CAPACITY = 0> class Stack { public: Stack(); Stack(const Stack<T>&nbs
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号