数据结构与算法
Never-guess
这个作者很懒,什么都没留下…
展开
-
由哈希表所联想到的相关问题
由哈希表所联想到的相关问题C++的STL中使用了散列的容器类有:map、multimap、unordered_map、unordered_multimap、set、multi_set、unordered_set、unordered_multiset。Map和Multimap 将(key/value) 一组当做元素,它们可以根据 key 的排序准则自动将元素排序,内部是由一个红黑树实现。Multi...原创 2017-07-11 13:49:58 · 363 阅读 · 0 评论 -
二叉树的四种遍历方法(递归、迭代)
一、前序遍历前序遍历简单来讲,遍历顺序是:根节点-左子树-右子树1、递归遍历1 void preorder(BinTree *T)2 {3 if(T==NULL)4 return;5 cout << T->data;6 preorder(T->left);7 preorder(T->right);8 }2、迭代遍历(用栈实现) 1转载 2017-07-31 12:25:04 · 1083 阅读 · 0 评论 -
格雷码与二进制的转换
一、什么是格雷码?格雷码,又叫循环二进制码或反射二进制码,格雷码是我们在工程中常会遇到的一种编码方式,它的基本的特点就是任意两个相邻的代码只有一位二进制数不同,这点在下面会详细讲解到。格雷码的基本特点就是任意两个相邻的代码只有一位二进制数不同,这点很重要。常用的二进制数与格雷码间的转换关系如下表:二、二进制格雷码与自然二进制码的互换1、二进制码转换成二进制格雷码 二进制码转换成二进制格雷码,其转载 2017-07-25 16:43:54 · 809 阅读 · 0 评论 -
快速排序算法的两种实现
快速排序(Quicksort)是对冒泡排序的一种改进。快速排序由C. A. R. Hoare在1962年提出。它的基本思想是: 通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。方法一:#include <iostream>#include <ve原创 2017-10-19 16:49:56 · 340 阅读 · 0 评论 -
归并排序
归并操作(merge),也叫归并算法,指的是将两个已经排序的序列合并成一个序列的操作。归并排序算法依赖归并操作。 递归法(Top-down) 1.申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列 2.设定两个指针,最初位置分别为两个已经排序序列的起始位置 3.比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置 4.重复步骤3直到某一指针到达...原创 2018-03-09 16:57:52 · 186 阅读 · 0 评论 -
回文问题合集
最长回文子串 https://blog.csdn.net/qq_20791919/article/details/74999999 最长回文子序列 最长公共子序列 最长递增子序列 最长公共子串 https://blog.csdn.net/qq_20791919/article/details/75041809 回文子序列个数 设字符串为str,长度为n,dp[i][j]表示第i到...原创 2018-04-20 10:47:25 · 656 阅读 · 0 评论