
数据结构和算法
文章平均质量分 70
灬鬼谷灬
这个作者很懒,什么都没留下…
展开
-
汉诺塔
汉诺塔问题可以有几种解决方法:一、递归递归方式是最简单的也是最容易想到的一种方式。假如n个圆盘要从a 移动到 b,则需要分三步:1、最上面n-1个圆盘从a先移动到c 2、最后一个圆盘从a移动到b3、n-1个圆盘从c移动到bvoid move(int n, char cSrc, char cDest, char cMid){ if (1 == n) { print原创 2016-01-28 14:08:18 · 471 阅读 · 0 评论 -
随机洗牌
随机洗牌有多种思路:1、抽牌法#define NUM 54void Shuffle(){ int card[NUM]; for (int i = 0; i < NUM; i++) { card[i] = i+1; } for (int i = NUM-1; i >= 0; i--) { int n = rand() % (i+1); int num = card原创 2016-01-28 15:12:16 · 568 阅读 · 0 评论 -
Find the Duplicate Number
Given an array nums containing n + 1 integers where each integer is between 1 and n (inclusive), prove that at least one duplicate number must exist. Assume that there is only one duplicate number, fi原创 2016-05-18 10:11:01 · 388 阅读 · 0 评论 -
排序算法
最近看了一些排序算法,在此做一些回顾一、插入排序所谓插入排序,简单理解就是把一个数据放到已经排序的数列中某个位置,把其他数据挤跑的过程。void InsertionSort(int data[], int n){ int i , j , temp; for (i = 0; i < n; i++) { Temp = data[i]; for (j = i; j > 0 &原创 2016-02-28 13:25:41 · 611 阅读 · 0 评论 -
二叉查找树(BST)和平衡二叉查找树(AVL)
二叉查找树(BST)前一篇介绍了树,却未介绍树有什么用。但就算我不说,你也能想得到,看我们Windows的目录结构,其实就是树形的,一个典型的分类应用。当然除了分类,树还有别的作用,我们可以利用树建立一个非常便于查找取值又非常便于插入删除的数据结构,这就是马上要提到的二叉查找树(Binary Search Tree),这种二叉树有个特点:对任意节点而言,左子(当然了,存在的话)的值总是小于转载 2016-05-31 11:30:07 · 361 阅读 · 0 评论 -
stl各种类型大致分析
先上个图:原创 2016-07-23 21:15:51 · 421 阅读 · 0 评论