Algorithm
文章平均质量分 69
ThanksCreek
这个作者很懒,什么都没留下…
展开
-
排序总结之选择式排序
一,直接选择排序 介绍:直接选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位置上,则它不会被移动。选择排序每次交换一对元素原创 2014-05-07 21:21:41 · 1567 阅读 · 0 评论 -
经典算法求字符串的编辑距离
编辑距离定义通过插入删除或替换使得一个字符串变为另一个字符串的最小操作次数。DP思路设有字符串a和字符串b a[m]表示第一个字符串,m表示该字符串字符的下标为0~m b[n]表示第二个字符串,n表示该字符串字符的下标为0~n d[i][j]表示子串a[i]和子串a[j]的最小编辑距离 那么边界条件: d[i][0]=i, 0=<i<=m d[0][j]=j, 0=<j<=n状态转移方程: if(a原创 2017-05-06 17:47:59 · 726 阅读 · 0 评论 -
Leetcode -- Verify Preorder Serialization of a Binary Tree
题目描述 One way to serialize a binary tree is to use pre-order traversal. When we encounter a non-null node, we record the node's value. If it is a null node, we record using a sentinel value such a原创 2016-09-29 19:15:19 · 505 阅读 · 0 评论 -
Best Time to Buy and Sell Stock
问题一 Best Time to Buy and Sell Stock Say you have an array for which the ith element is the price of a given stock on day i. If you were only permitted to complete at most one transaction (ie, buy on原创 2014-11-30 22:56:51 · 1090 阅读 · 0 评论 -
Distinct Subsequences
题目: Given a string S and a string T, count the number of distinct subsequences of T in S. A subsequence of a string is a new string which is formed from the original string by deleting some (c原创 2014-05-03 15:51:28 · 1500 阅读 · 0 评论 -
Longest Valid Parentheses (求最长有效匹配括号子串的长度)
题目描述: Given a string containing just the characters'(' and')', find the length of the longest valid (well-formed) parentheses substring. For "(()", the longest valid parentheses substring is原创 2013-06-24 16:56:22 · 1927 阅读 · 1 评论 -
非递归实现二叉树的遍历
二叉树遍历是树的最基本算法之一,是二叉树上进行其它运算之基础。 所谓遍历(Traversal)是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问。 访问结点所做的操作依赖于具体的应用问题。 ① 前序遍历(PreorderTraversal亦称(先序遍历)) ——访问根结点的操作发生在遍历其左右子树之前。 ② 中序遍历(InorderTraversal) ——访问根结点的操作原创 2014-11-12 20:06:47 · 1556 阅读 · 2 评论 -
二分查找算法
提到查找算法,最经典的就是二分查找算法了。在二分查找时要在有序的数据里查找目标target,先取中间元素与target比较, 当target小于中间元素的时候,则搜索数组的前半部分,target大于中间元素时,则取数组的后半部分。重复整个搜索的过程 将左半部分与有半部分当作子数组继续查找,直到找到元素或到子数组的大小为0停止。 原理上很简单却有较多细节,尤其是数据边界的取值是否会越界,whi原创 2014-08-25 21:55:45 · 993 阅读 · 0 评论 -
排序总结之归并排序
归并排序(Merge)是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。 归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合原创 2014-03-18 14:27:29 · 2008 阅读 · 0 评论 -
顺序表的应用--并运算和交运算
有俩个顺序表,LA和LB,把他们当作集合来使用,考虑他们的并运算和交运算。 可以把顺序表当作一个抽象数据类型,直接利用它的类定义来实现要求的运算。 并运算: void union(SeqList& LA, SeqList& LB){ int n = LA.Length; int m = Lb.Length; int i,x,k; for(i =1;i<=m;i++){ LB.原创 2013-10-28 23:31:05 · 2728 阅读 · 0 评论 -
学习算法之路(转载)
第一阶段:练经典常用算法,下面的每个算法给我打上十到二十遍,同时自己精简代码, 因为太常用,所以要练到写时不用想,10-15分钟内打完,甚至关掉显示器都可以把程序打 出来. 1.最短路(Floyd、Dijstra,BellmanFord) 2.最小生成树(先写个prim,kruscal要用并查集,不好写) 3.大数(高精度)加减乘除 4.二分查找. (代码可在五行以内)转载 2013-10-28 16:47:55 · 1128 阅读 · 0 评论 -
经典迭代的算法总结——斐波那契数和辗转相除法
1关于迭代法的理解: 迭代法也称辗转法,是一种不断用变量的旧值递推新值的过程,跟迭代法相对应的是直接法(或者称为一次解法),即一次性解决问题。迭代算法是用计算机解决问题的一种基本方法。它利用计算机运算速度快、适合做重复性操作的特点,让计算机对一组指令(或一定步骤)重复执行,在每次执行这组指令(或这些步骤)时,都从变量的原值推出它的一个新值。 利用迭代算法解决问题,需要做好以下三个方面的工作:原创 2013-12-28 21:11:00 · 7788 阅读 · 0 评论 -
排序总结之基数排序
基数排序(radix sort)是属于“分配式排序”(distribution sort),基数排序又称“桶子法”(bucket sort)或bin sort,顾名思义,它是透过键值的部份资讯,将要排序的元素分配至某些“桶”中,藉以达到排序的作用,基数排序法是属于稳定性的排序,其时间复杂度为O (nlog(r)m),其中r为所采取的基数,而m为堆数,在某些时候,基数排序法的效率高于其它的比较性排序原创 2014-04-02 21:08:49 · 1186 阅读 · 0 评论 -
排序总结之插入式排序
算法概述: 插入排序(Insertion Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。原创 2014-04-19 12:27:34 · 1418 阅读 · 0 评论 -
排序总结之快速排序
简介: 快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来。快速排序使用分治法(Divide and conquer)策略来把一个串行(list)原创 2014-05-15 23:45:34 · 1931 阅读 · 2 评论 -
经典字符串算法 “最长上升子序列,最大连续子序列和,最长公共子串”
一、问题描述 这是三道典型的字符串dp问题。 最长上升子序列:在一列数中寻找一些数,这些数满足:任意两个数a[i]和a[j],若i 设dp[i]表示以i为结尾的最长递增子序列的长度,则状态转移方程为:dp[i] = max{dp[j]+1}, 1 考虑两个数a[x]和a[y],x数据结构来存储可能的递增子序列的元素,并且需要在某些时候进行替换。因此我们可以用一个链表来存储,并且在查转载 2017-05-06 18:00:08 · 4669 阅读 · 0 评论