数据结构和算法
文章平均质量分 61
lin37985
这个作者很懒,什么都没留下…
展开
-
查找
查找表有静态和动态之分,静态查找表仅作查询和检索操作的的查找表,动态查找表还可进行增加,删除,改动。二分查找法是对顺序表的查找方法,例如有一个数组int a[]={7,8,23,45,67,69,76,89,101,111};首先设两个变量low和high,分别记录二分查找的数组范围,然后用(low+high)/2求出mid,数组个数为奇数偶数都一样。用我们所要查找的数和num和mid原创 2015-02-13 21:35:52 · 442 阅读 · 0 评论 -
队列和栈的相互表示
欢迎使重点内容用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 C原创 2015-07-07 10:02:15 · 1119 阅读 · 0 评论 -
快速排序
快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。总的说来,要直接默写出快速排序还是有一定难度的,因为本人就自己的理解对快速排序作了下白话解释,希望对大家理解有帮助,达到快速转载 2015-02-13 16:48:21 · 388 阅读 · 0 评论 -
动态规划之背包问题
首先说下动态规划,动态规划这东西就和递归一样,只能找局部关系,若想全部列出来,是很难的,比如汉诺塔。你可以说先把除最后一层的其他所有层都移动到2,再把最后一层移动到3,最后再把其余的从2移动到3,这是一个直观的关系,但是想列举出来是很难的,也许当层数n=3时还可以模拟下,再大一些就不可能了,所以,诸如递归,动态规划之类的,不能细想,只能找局部关系。 (引至杭电课件:DP转载 2014-08-16 09:43:42 · 627 阅读 · 0 评论 -
P-NP问题
归约假如我们已经知道有那么几个问题,这个世界上所有的聪明人都没能找到高效的算法。 而且我们能把目前的问题通过等价转化的方式,变成这些已知问题的子问题。 这样就能证明我们不笨。 这个将一个问题,等价转换成另一个问题的子问题的方式,叫做 归约 (Reduction).将问题A归约成问题B的子集 《算法导论》上举了这么个例子。比如说,现在有两个问题:求解一个一元一次方程和求解一个一元二次方程。那么原创 2017-05-07 22:56:28 · 1052 阅读 · 0 评论