随笔分类 -  经典算法回顾

摘要:对于二叉树,有前序、中序、后序三种遍历方法,由于树的定义本身就是递归定义的,故采用递归方法实现三种遍历简洁易懂。若采用非递归访问,则需要使用栈来模拟递归的实现。三种遍历的非递归算法中,前序和后序较容易,而后序相对较难。前序遍历递归非递归树的遍历中序遍历递归非递归后序遍历递归非递归层次遍历计算树高... 阅读全文
posted @ 2015-06-18 17:22 人生不酱油 阅读(446) 评论(0) 推荐(0)
摘要:最长公共子串是字符串匹配中一个常见问题,在此做下总结,感觉解法真的是很巧妙。 如:对于字符串“aabbaadcc”和“baadce”,矩阵中,m[i][j] = 1,表示str1[i]和str2[j]相等 a a b b a a d c c b 0 0 1 1 ... 阅读全文
posted @ 2015-04-03 14:58 人生不酱油 阅读(342) 评论(0) 推荐(0)
摘要:算法思想:对n个数进行排序,需进行n-1趟排序,每次归位一个数。每次比较两个相邻的元素,如果他们的顺序错误,就把它们交换过来。复杂度:O(N2)优化:记录是否发生交换(true:是,false:否)算法代码: 1 #include "stdafx.h" 2 #include 3 #include ... 阅读全文
posted @ 2015-03-26 20:40 人生不酱油 阅读(151) 评论(0) 推荐(0)
摘要:算法思想:每次在未排序的序列中找最大的数,将其放在未排序序列的最后位置,重复该过程,知道所有元素排序完毕。 算法代码: 1 #include "stdafx.h" 2 #include 3 #include 4 using namespace std; 5 6 template 7 v... 阅读全文
posted @ 2015-03-26 20:39 人生不酱油 阅读(121) 评论(0) 推荐(0)
摘要:基数排序基于多关键字排序的思想,即把一个逻辑关键字拆分成多个关键字。 基数排序有两种实现方式:第一种叫做最高位优先(MSD),即先按最高位排成若干子序列,再对每个子序列按次高位排。第二种叫做最低位优先(LSD),这种方式不必分成子序列,每次排序全体元素都参与。最低位可以优先这样进行,不通过比较... 阅读全文
posted @ 2015-03-26 20:26 人生不酱油 阅读(467) 评论(0) 推荐(0)
摘要:基于比较的排序算法是不能突破O(NlogN)的,而非基于比较的排序,如计数排序、桶排序和计数排序,则可以突破O(NlogN)的时间下限。但要注意的是,非基于比较的排序算法的使用都是有条件限制的,例如元素的大小限制,而基于比较的排序则没有这种限制(在一定范围内)。对特定场合有着特殊性质的数据,非基... 阅读全文
posted @ 2015-03-26 14:54 人生不酱油 阅读(838) 评论(0) 推荐(0)
摘要:归并排序是将两个或两个以上的有序子表合并成一个新的有序表。它的基本思想是分治法。对于二路归并而言,初始时将含有n个节点的待排序序列看作由n个长度为1的有序子表组成,将它们一次两两归并得到长度为2的若干有序子表,再对它们两两合并,知道得到长度为n的有序表,排序结束。 与快速排序和堆排序相比,归并... 阅读全文
posted @ 2015-03-26 12:32 人生不酱油 阅读(1313) 评论(0) 推荐(0)
摘要:插入排序的基本思想是:每次选择待排序的记录序列的第一个记录,按照排序值的大小将其插入到已排序的记录序列中的适当位置,直到所有记录全部排序完毕。直接插入排序: 直接插入排序是一种最简单的排序方法,整个排序过程为:先将第一个记录看做一个有序记录序列,然后从第二个记录开始,依次将为排序的记录插入这个... 阅读全文
posted @ 2015-03-25 19:10 人生不酱油 阅读(154) 评论(0) 推荐(0)
摘要:算法思想: 快速排序采用的思想是分治思想。 快速排序是找出一个元素(理论上可以随便找一个)作为基准(pivot),然后对数组进行分区操作,使基准左边元素的值都不大于基准值,基准右边的元素值都不小于基准值,如此作为基准的元素调整到排序后的正确位置。递归快速排序,将其他n-1个元素也调整到排序后的正... 阅读全文
posted @ 2015-03-25 15:16 人生不酱油 阅读(332) 评论(0) 推荐(0)
摘要:堆排序与快速排序、归并排序都是时间复杂度为O(NlogN)的常见排序算法。堆排序是一种利用堆的性质进行排序的算法。最大堆(最小堆与之类似)是一种比较特殊的完全二叉树,它满足两个特性: 1. 父节点的值总是大于等于任何一个子节点的值。 2. 每个节点的左子树和右... 阅读全文
posted @ 2015-03-25 13:00 人生不酱油 阅读(153) 评论(0) 推荐(0)