一步步学算法
最近在自学算法,主要介绍自己学习数据结构,算法过程中遇到的问题和相关的题解。
本人现在大二,能力有限,希望共同进步。
Colin丶
这个作者很懒,什么都没留下…
展开
-
排序算法c语言描述-快速排序随机化
今天在做数据结构排序实验的时候,使用的快速排序。按理,我印象中快排是很高效的,不过,这次400w的数据,排了2659秒,有点意想不到,让我一度怀疑了算法是否写错了。不过,认真分析,认真想想后, 也就释然了。快排其实就是冒泡的升级版。每次递归,把当前序列分成两部分,一个比枢纽元素大,一个比枢纽元素小。具体思想可以参见的之前写的一篇博客。http://blog.csdn.net原创 2013-11-23 19:35:24 · 4700 阅读 · 6 评论 -
一步步学算法(算法分析)---6(贪心算法)
这个总结的很详细。在学习过程中帮了我很大的忙。希望分享出来对大家有用。原文链接 http://www.cnblogs.com/chinazhangjie/archive/2010/11/23/1885330.html参考资料 《算法分析与设计》 王晓东编著(在排版过程做了些改动。还望见谅)贪心算法顾名思义,贪心算法总是作出在当前看来最好的选择。也就是说贪心算法原创 2013-09-29 18:45:08 · 4534 阅读 · 7 评论 -
一步步学算法(算法分析)---6(Floyd算法)
Floyd算法Floyd算法又称为弗洛伊德算法,插点法,是一种用于寻找给定的加权图中顶点间最短路径的算法。该算法名称以创始人之一、1978年图灵奖获得者、斯坦福大学计算机科学系教授罗伯特·弗洛伊德命名。正如我们所知道的,Floyd算法用于求最短路径。Floyd算法可以说是Warshall算法的扩展,三个for循环就可以解决问题,所以它的时间复杂度为O(n^3)。Floyd算法的基本思想原创 2013-09-24 20:15:28 · 2862 阅读 · 3 评论 -
一步步学算法(算法题解)---5
本人大二,最近开始自学算法,在此记录自己学习过程中接触的习题。与君共勉。水平有限,目前涉及的题目都比较水。题目分布为5+1. 5为自己学习的5道水题。 1为从网上找到的比较有水平的相关题目。一步步学算法(算法题解)---5算式求值。1.括号配对。问题描述:编一程序对输入的含有大,中,小括号的表达式进行括号配对原创 2013-09-18 23:14:11 · 2026 阅读 · 7 评论 -
一步步学算法(算法题解)---4
本人大二,最近开始自学算法,在此记录自己学习过程中接触的习题。与君共勉。水平有限,目前涉及的题目都比较水。题目分布为5+1. 5为自己学习的5道水题。 1为从网上找到的比较有水平的相关题目。一步步学算法(算法题解)---4穷举法。穷举算法是程序设计中使用得最为普遍、大家必须熟练掌握和正确运用的一种算法。它利用计算机运算速度快、精原创 2013-09-15 13:40:37 · 2983 阅读 · 9 评论 -
一步步学算法(算法题解)---3
本人大二,最近开始自学算法,在此记录自己学习过程中接触的习题。与君共勉。水平有限,目前涉及的题目都比较水。题目分布为5+1. 5为自己学习的5道水题。 1为从网上找到的比较有水平的相关题目。一步步学算法(算法题解)---3图形输出。这部分应该算比较有趣的一章了。虽然涉及的算法没什么技术含量,也比较简单。但是看着控制台输出漂亮的图形,还是原创 2013-09-09 17:53:27 · 2073 阅读 · 4 评论 -
排序算法c语言描述---冒泡排序
排序算法系列学习,主要描述冒泡排序,选择排序,直接插入排序,希尔排序,堆排序,归并排序,快速排序等排序进行分析。文章规划:一。通过自己对排序算法本身的理解,对每个方法写个小测试程序。 具体思路分析不展开描述。二。通过《大话数据结构》一书的截图,详细分析该算法 。 在此,推荐下程杰老师的《大话数据结构》一书,当然不是打广告,只是以一名读者的身份来客观的看待这本书,确实是通俗易懂,值得原创 2013-08-05 22:16:56 · 10354 阅读 · 0 评论 -
排序算法c语言描述---选择排序
排序算法系列学习,主要描述冒泡排序,选择排序,直接插入排序,希尔排序,堆排序,归并排序,快速排序等排序进行分析。文章规划:一。通过自己对排序算法本身的理解,对每个方法写个小测试程序。 具体思路分析不展开描述。二。通过《大话数据结构》一书的截图,详细分析该算法 。 在此,推荐下程杰老师的《大话数据结构》一书,当然不是打广告,只是以一名读者的身份来客观的看待这本书,确实是通俗易懂,值得原创 2013-08-05 23:32:10 · 9941 阅读 · 0 评论 -
排序算法c语言描述---直接插入排序
排序算法系列学习,主要描述冒泡排序,选择排序,直接插入排序,希尔排序,堆排序,归并排序,快速排序等排序进行分析。文章规划:一。通过自己对排序算法本身的理解,对每个方法写个小测试程序。 具体思路分析不展开描述。二。通过《大话数据结构》一书的截图,详细分析该算法 。 在此,推荐下程杰老师的《大话数据结构》一书,当然不是打广告,只是以一名读者的身份来客观的看待这本书,确实原创 2013-08-10 17:59:21 · 10390 阅读 · 0 评论 -
排序算法c语言描述---希尔排序
排序算法系列学习,主要描述冒泡排序,选择排序,直接插入排序,希尔排序,堆排序,归并排序,快速排序等排序进行分析。文章规划:一。通过自己对排序算法本身的理解,对每个方法写个小测试程序。 具体思路分析不展开描述。二。通过《大话数据结构》一书的截图,详细分析该算法 。 在此,推荐下程杰老师的《大话数据结构》一书,当然不是打广告,只是以一名读者的身份来客观的看待这本书,确实原创 2013-08-10 20:33:01 · 11681 阅读 · 1 评论 -
排序算法c语言描述---堆排序
排序算法系列学习,主要描述冒泡排序,选择排序,直接插入排序,希尔排序,堆排序,归并排序,快速排序等排序进行分析。文章规划:一。通过自己对排序算法本身的理解,对每个方法写个小测试程序。具体思路分析不展开描述。二。通过《大话数据结构》一书的截图,详细分析该算法。在此,推荐下程杰老师的《大话数据结构》一书,当然不是打广告,只是以一名读者的身份来客观的看待这本书,确原创 2013-08-13 21:36:27 · 13887 阅读 · 3 评论 -
排序算法c语言描述---归并排序
排序算法系列学习,主要描述冒泡排序,选择排序,直接插入排序,希尔排序,堆排序,归并排序,快速排序等排序进行分析。文章规划:一。通过自己对排序算法本身的理解,对每个方法写个小测试程序。 具体思路分析不展开描述。二。通过《大话数据结构》一书的截图,详细分析该算法 。 在此,推荐下程杰老师的《大话数据结构》一书,当然不是打广告,只是以一名读者的身份来客观的看待这本书,确实是通俗易懂,值得原创 2013-08-14 00:39:47 · 16172 阅读 · 3 评论 -
排序算法c语言描述---快速排序
排序算法系列学习,主要描述冒泡排序,选择排序,直接插入排序,希尔排序,堆排序,归并排序,快速排序等排序进行分析。文章规划:一。通过自己对排序算法本身的理解,对每个方法写个小测试程序。 具体思路分析不展开描述。二。通过《大话数据结构》一书的截图,详细分析该算法 。 在此,推荐下程杰老师的《大话数据结构》一书,当然不是打广告,只是以一名读者的身份来客观的看待这本书,确实原创 2013-08-14 18:15:38 · 9306 阅读 · 1 评论 -
排序算法c语言描述---双向冒泡排序
排序算法系列学习,主要描述冒泡排序,选择排序,直接插入排序,希尔排序,堆排序,归并排序,快速排序等排序进行分析。文章规划:一。通过自己对排序算法本身的理解,对每个方法写个小测试程序。 具体思路分析不展开描述。二。通过《大话数据结构》一书的截图,详细分析该算法 。 在此,推荐下程杰老师的《大话数据结构》一书,当然不是打广告,只是以一名读者的身份来客观的看待这本书,确实原创 2013-08-14 19:13:15 · 22156 阅读 · 3 评论 -
排序算法c语言描述---基数排序
排序算法系列学习,主要描述冒泡排序,选择排序,直接插入排序,希尔排序,堆排序,归并排序,快速排序等排序进行分析。文章规划:一。通过自己对排序算法本身的理解,对每个方法写个小测试程序。 具体思路分析不展开描述。二。通过《大话数据结构》一书的截图,详细分析该算法 。 在此,推荐下程杰老师的《大话数据结构》一书,当然不是打广告,只是以一名读者的身份来客观的看待这本书,确实原创 2013-08-14 20:25:24 · 26716 阅读 · 3 评论 -
排序算法c语言描述---计数排序
十。计数排序一。个人理解。计数排序假设n个输入元素中的每一个都是介于0到k之间的整数。计数排序的思想是对每一个输入元素x,确定出小于x的元素个数,有了这一信息,就可以把x直接放在它在最终输出数组的位置上。例如,如果有15个元素小于x,则x就是属于第16个输出位置。当几个元素相同是,方案要略作修改。算法的步骤如下:找出待排序的数组中最大的元素统计数组中每个原创 2013-08-15 16:57:11 · 9274 阅读 · 0 评论 -
排序算法c语言描述---桶排序
十一。桶排序一。个人理解桶排序是另外一种以O(n)或者接近O(n)的复杂度排序的算法. 它假设输入的待排序元素是等可能的落在等间隔的值区间内.一个长度为N的数组使用桶排序, 需要长度为N的辅助数组. 等间隔的区间称为桶, 每个桶内落在该区间的元素. 桶排序是基数排序的一种归纳结果。算法的主要思想: 待排序数组A[1...n]内的元素是随机分布在[0,1)区间内的的浮点数.辅原创 2013-08-15 17:59:47 · 28167 阅读 · 12 评论 -
数据结构习题——第二章 线性表
第二章 线性表一、选择题1.下述哪一条是顺序存储结构的优点?( )A.存储密度大 B.插入运算方便 C.删除运算方便 D.可方便地用于各种逻辑结构的存储表示2.下面关于线性表的叙述中,错误的是哪一个?( )A.线性表采用顺序存储,必须占用一片连续的存储单元。B.线性表采用顺序存储,便于进行插入和删除操作。C.线性表采用链接存储,不必占用一片连续的存储单元。D.线性表原创 2013-09-08 22:40:28 · 21444 阅读 · 8 评论 -
数据结构习题——第一章 绪论
第一章 绪论一.选择题1.数据结构被形式地定义为(K,R),其中K是①的有限集合,R是K上的②的有限集合。 ①A.算法 B.数据元素 C.数据操作 D.逻辑结构 ②A.操作 B.映象 C.存储 D.关系2.算法分析的目的是①,算法分析的两个主要方面是②。 ①A.找出数据结构的合理性 B原创 2013-09-08 22:31:44 · 23129 阅读 · 9 评论 -
一步步学算法(算法题解)---2
本人大二,最近开始自学算法,在此记录自己学习过程中接触的习题。与君共勉。水平有限,目前涉及的题目都比较水。题目分布为5+1. 5为自己学习的5道水题。 1为从网上找到的比较有水平的相关题目。一步步学算法(算法题解)---2经典问题回顾。1。河内之塔(Hanoi)问题描述:说明河内之塔(Towers o原创 2013-09-08 22:15:10 · 2011 阅读 · 8 评论 -
一步步学算法(算法题解)---1
本人大二,最近开始自学算法,在此记录自己学习过程中接触的习题。与君共勉。水平有限,目前涉及的题目都比较水。题目分布为5+1. 5为自己学习的5道水题。 1为从网上找到的比较有水平的相关题目。一步步学算法(算法题解)---1数值处理相关问题。1。19头牛问题描述:有一个老人在临死前把三个儿子叫到跟前,告诉他们把19头牛分了,老大分原创 2013-09-06 22:49:34 · 3083 阅读 · 11 评论