17-算法
文章平均质量分 69
edward0004
这个作者很懒,什么都没留下…
展开
-
精通八大排序算法系列:一、快速排序算法
精通八大排序算法系列:一、快速排序算法 作者 July 二零一一年一月四日------------------------------------------ 写此八大排序算法系列之前,先说点题外话。每写一篇文章,我都会遵循以下几点原则:一、保持版面的尽量清晰,力保排版良好。二、力争所写的东西,清晰易懂,图文并茂三、尽最大可能确保所写的东西精准,有实用价值转载 2012-02-15 10:28:51 · 483 阅读 · 0 评论 -
用位运算实现两个整数的加减乘除运算
位运算的思想可以应用到很多地方,这里简单的总结一下用位运算来实现整数的四则运算。1.整数的加法int MyAdd(int a,int b) { for(int i=1;i;i if(b&i) for(int j=i;j;j if(a&j)转载 2012-10-10 23:35:52 · 645 阅读 · 0 评论 -
将一个单向链表逆序
/**about: 腾讯面试,将一个单向链表逆序*author:justinzhang*email:uestczhangchao@gmail.com*estblished:2011年4月24日16:40:25*revised:2011年5月10日15:00:26*/#include using namespace std;class node{ public:转载 2012-09-20 13:12:26 · 617 阅读 · 0 评论 -
最长回文子串求解
题目:给定一个字符串,求其的最大回文子串。例如:字符串:owwoshisbsiha,它的最大回文子串是:hisbsih。求解方法:暴力枚举、动态规划、后缀数组、线性算法方法一:暴力枚举最简单的方法当然就是对字符串的每一个子串进行回文判断。一个字符串有O(n²)个子串,然后判断是否回文复杂度是O(n),所以该算法的算法复杂度是O(n³)。方法二:动态规划动态规转载 2012-10-09 10:24:03 · 1148 阅读 · 1 评论 -
经典面试题总结 —— Binary Search 及其变种
二分查找是在技术面试中经常出现的题目,首先这种题目考察思路,另外因为代码一般很短----不会超过50行。所以很适合做技术笔试,或者面试之类的题目出现。之前做过一些题目,很多是BS算法的变种,我这里给出几个例子,算是做一个总结吧。1. 传统的Binary Search 1.1. 最普通的BS算法就是给定一个排好序的数组,然后查找一个数是否在数组内,如果在给转载 2012-10-09 10:31:49 · 635 阅读 · 0 评论 -
最长连续回文串(Longest Palindromic Substring)
题目: Given a string S, find the longest palindromic substring in S.给出一个字符串S,找到一个最长的连续回文串。例如串 babcbabcbaccba 最长回文是:abcbabcba这个题目小弟给出3中解法,前两种的都是 O(n^2), 第三种思路是O(n). 思路1. 动转载 2012-10-09 10:39:42 · 506 阅读 · 0 评论 -
Wildcard Matching (Recursive and Non Recursive method) (Leetcode 网易有道面试题)
题目描述 (http://www.leetcode.com/onlinejudge 倒数第三题)Implement wildcard pattern matching with support for '?' and '*'.'?' Matches any single character.'*' Matches any sequence of characters (inc转载 2012-10-09 10:30:05 · 644 阅读 · 0 评论 -
B树的C实现
从B树谈到R树之B树的C实现作者:weedge,July。编程艺术室出品。前言 代码大全的作者Steve McConnell曾称,他所见识的任何一本书都不是某一个人能完全独立即能完成的。吾深以为然。 本blog内的文章十有八九系我个人参考资料原创所作,与此同时十有二三系本人与吾的朋友共同创作完成。所以,诸君在浏览本博客内任何一篇文章时,务必尊重他人劳动成转载 2012-10-05 23:14:03 · 1985 阅读 · 0 评论 -
从B树、B+树、B*树谈到R 树
从B 树、B+ 树、B* 树谈到R 树 作者:July、weedge、Frankie。编程艺术室出品。说明:本文从B树开始谈起,然后论述B+树、B*树,最后谈到R 树。其中B树、B+树及B*树部分由weedge完成,R 树部分由Frankie完成,全文最终由July统稿修订完成。出处:http://blog.csdn.net/v_JULY_v 。 第一节、B树、B+树、B*转载 2012-10-05 22:35:15 · 950 阅读 · 0 评论 -
判断两个单链表是否相交
法1、对链表1中的每个节点p1,判断链表2中是否有一个节点p2指向p1loop:p1从head1到最后一个节点loop:p2从head2到最后一个节点 if(p2是否指向p1) 相交 break时间复杂度:O(list1.length * list2.length)空间复杂度:O(1)法2、使用hash表loop:p1从head1到最后一个节点转载 2012-10-04 21:57:37 · 552 阅读 · 0 评论 -
树的镜像反转
树的镜像反转,先将树转换为做孩子有兄弟的二叉树,然后对二叉树的每一个右子树进行链表的反转操作(思路很重要)[cpp] view plaincopy//树的镜像反转,转换为二叉树进行操作 TreeNode* MirorReverse(TreeNode* root) { assert(root); if(r转载 2012-10-04 21:58:11 · 755 阅读 · 0 评论 -
树的镜像(反转)
[html] view plaincopypre name="code" class="cpp">#include stdio.h> typedef struct BCTreeNode // { int Value; // struct转载 2012-10-04 21:49:42 · 658 阅读 · 0 评论 -
海量数据 处理方法总结
最近有点忙,稍微空闲下来,发篇总结贴。 大数据量的问题是很多面试笔试中经常出现的问题,比如baidu google 腾讯 这样的一些涉及到海量数据的公司经常会问到。 下面的方法是我对海量数据的处理方法进行了一个一般性的总结,当然这些方法可能并不能完全覆盖所有的问题,但是这样的一些方法也基本可以处理绝大多数遇到的问题。下面的一些问题基本直接来源于公司的面试笔试题目,方法不一定最优,如转载 2012-10-02 23:13:21 · 538 阅读 · 0 评论 -
排序算法稳定性
快速排序、希尔排序、堆排序、直接选择排序不是稳定的排序算法,而基数排序、冒泡排序、直接插入排序、折半插入排序、归并排序是稳定的排序算法 首先,排序算法的稳定性大家应该都知道,通俗地讲就是能保证排序前2个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同。在简单形式化一下,如果Ai = Aj, Ai原来在位置前,排序后Ai还是要在Aj位置前。 其次,说一下稳转载 2012-05-03 22:13:30 · 398 阅读 · 0 评论 -
z排序算法的稳定性
选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法,冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。冒泡法: 这是最原始,也是众所周知的最慢的算法了。他的名字的由来因为它的工作看来象是冒泡: 复杂度为O(n*n)。当数据为正序,将不会有交换。复杂度为O(0)。直接插入排序:O(n*n)选择排序:O(n*n)快速排序:平均时间复转载 2012-04-06 21:26:16 · 765 阅读 · 0 评论 -
轻松搞定面试中的二叉树题目
版权所有,转载请注明出处,谢谢!http://blog.csdn.net/walkinginthewind/article/details/7518888树是一种比较重要的数据结构,尤其是二叉树。二叉树是一种特殊的树,在二叉树中每个节点最多有两个子节点,一般称为左子节点和右子节点(或左孩子和右孩子),并且二叉树的子树有左右之分,其次序不能任意颠倒。二叉树是递归定义的,因此,与二叉树转载 2012-10-10 23:40:26 · 635 阅读 · 0 评论