随笔分类 - 15 [不得不转载]
(08) [转载]- 在排序数组中查找和为给定值的两个数字
摘要:题目:输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,因此输出4和11。分析:如果我们不考虑时间复杂度,最简单想法的莫过去先在数组中固定一个数字,再依次判断数组中剩下的n-1个数字与它的和是不是等于输入的...
阅读全文
[转载] 趣味算法:字符串反转的N种方法
摘要:原贴:趣味算法:字符串反转的N种方法 老赵在反对北大青鸟的随笔中提到了数组反转。这的确是一道非常基础的算法题,然而也是一道很不平常的算法题(也许所有的算法深究下去都会很不平常)。因为我写着写着,就写出来8种方法……现在我们以字符串的反转为例,来介绍这几种方法并对它们的性能进行比较。使用Array.Reverse方法对于字符串反转,我们可以使用.NET类库自带的Array.R...
阅读全文
(转载)(c#)数据结构与算法分析 --数组、向量和表
摘要:数组数组不用多解释了,都了解,这里再重复一些重要的。随机这个词经常出现,在刚学的时候,都说数组在内存中是随机访问的,然而随机数又是随机(不确定)的,这两个概念总是搞不清楚。这里的随机访问与随机存储器的概念一样,google了也百度了,就是搞不到这个随机是什么意思,就只能按random本意来理解了,只好意会。大家都知道数组在内存中存放的方式,是顺序的,也就是在访问某个元素的时候,比如访问第五个元素[...
阅读全文
(转)(c#)数据结构与算法分析 --栈与队列
摘要:栈stack栈是一种先进后出机制,它只允许访问访问一个数据项,即 栈顶(最后插入的数据项)。它有主要的三种操作:push,向栈内压入值;pop,弹出栈顶的值,即返回栈顶的值,并把它从栈内删除;peek,只返回但不删除栈顶。概念很容易理解,无非就像给弹匣压子弹等等这种类比,但是像我这样的新手在刚接触到栈的时候总是很迷茫,认为它很难,其实这只是错觉,主要是因为没有搞清楚栈主要用在那些场景。栈普遍应用于...
阅读全文
(转)(c#)数据结构与算法分析 --树
摘要:树 首先,在win下,进入命令行,输入tree,它会以树的形式返回当前文件夹下的所有子文件夹及文件。 如上图,就是一个树。 就像一棵被颠倒过来的苹果树,每一个元素称之为节点,如图,A就是这棵树的老大了,称为根(root),如果某个节点有元素的话,这个节点相对于它的子节点为根,这棵树相对于A来说,是它的子树,例如,树D是A的子树。 对于没有子节点的节点,称之为叶节点。 这些树的根都被来自跟的每一条有...
阅读全文
[转载] (c#)数据结构与算法分析 --递归
摘要:递归不知道有新手听没听过别人拿剥糖块来形容递归,诸如一层层地剥好比一层层地进入递归。这种比喻可是误导了我,只想着剥了,其实剥完皮儿,取出糖块,再把皮儿一层层地穿上才算个完整的递归。 递归就是自己调用自己的函数或方法了,一般情况,像我这样的新手刚接触递归的时候,迷就迷在了不明白递归的原理上,在 (c#)数据结构与算法分析 --栈与队列 中说过,编译器一般用栈来实现递归,具体就看那篇文章吧。 这里先举...
阅读全文
[转载] 数据结构在内存里的大小与对齐(C语言)
摘要:this is a test file, Sharing and the structure of the memory allocation.//Print the data type of the memory size allocated.//32-bit processors running in the results and comments should be equal.//In ...
阅读全文
用堆栈和用递归分别实现倒序打印
摘要:1.用堆栈实现倒序打印: http://learn.akae.cn/media/ch12s02.html堆栈是一组元素的集合,类似于数组,不同之处在于,数组可以按下标随机访问,这次访问a[5]下次可以访问a[1],但是堆栈的访问规则被限制为Push和Pop两种操作,Push(入栈或压栈)向栈顶添加元素,Pop(出栈或弹出)则取出当前栈顶的元素,也就是说,只能访问栈顶元素而不能访问栈中其它元素。如果...
阅读全文
(3): 求子数组的最大和
摘要:目:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。 例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2,因此输出为该子数组的和18。分析:本题最初为2005年浙江大学计算机系的考研题的最后一道程序设计题,在2006年里包括g...
阅读全文
(4): 转载: 查找最小的k个元素
摘要:题目:输入n个整数,输出其中最小的k个。例如输入1,2,3,4,5,6,7和8这8个数字,则最小的4个数字为1,2,3和4。分析:这道题最简单的思路莫过于把输入的n个整数排序,这样排在最前面的k个数就是最小的k个数。只是这种思路的时间复杂度为O(nlogn)。我们试着寻找更快的解决思路。我们可以开辟一个长度为k的数组。每次从输入的n个整数中读入一个数。如果数组中已经插入的元素少于k个,则将读入的整...
阅读全文
(06) [修正版] 判断整数序列是不是二元查找树的后序遍历结果
摘要:发现网上有很多这道题的解法都是互相拷贝的,都有一些问题,所以本人做了一些更正:代码 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--题目:输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果。如果是返回true,否则返回false。例如输入5...
阅读全文
(34)-[转载] 程序员面试题精选100题 -找出数组中两个只出现一次的数字
摘要:题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。分析:这是一道很新颖的关于位运算的面试题。首先我们考虑这个问题的一个简单版本:一个数组里除了一个数字之外,其他的数字都出现了两次。请写程序找出这个只出现一次的数字。这个题目的突破口在哪里?题目为什么要强调有一个数字出现一次,其他的出现两次?我们想到了异或...
阅读全文
6 important .NET concepts: - Stack, heap, Value types, reference types, boxing and Unboxing.
摘要:1. For english version: http://www.codeproject.com/KB/dotnet/6importentStepsDotNet.aspxhttp://www.csharpcorner.com/uploadfile/rmcochran/csharp_memory01122006130034pm/csharp_memory.aspx2. 中文翻译版: 详解.NET...
阅读全文
[转]MySQL性能优化的最佳20+条经验
摘要:[转自]http://coolshell.cn/articles/1846.html今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情。当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。这里,我们不会讲过多的SQL语句的优化,而只是针对M...
阅读全文
【转】开始命令行命令
摘要:mrt.exe -----微软恶意软件清理助手regedit.exe ---注册表regedt32 -----注册表编辑器msconfig.exe ---系统配置实用程序services.msc ---本地服务设置gpedit.msc ----组策略devmgmt.msc --- 设备管理器wupdmgr -----windows更新程序diskmgmt.msc ---磁盘管理实用程序chkdsk...
阅读全文
转】.NET强名称工具(Sn.exe)使用详解
摘要:语法格式:ITPUB个人空间 i+F7D2M-Wz;C5esn [-quiet][option [parameter(s)]] 参数及选项说明-c [csp]r6xc-f4Y"tU'L0将默认加密服务提供程序 (CSP) 设置为用于强名称签名。此设置应用于整台计算机。如果不指定 CSP 名称,则Sn.exe将清除当前设置。-d container.dsNL[kF0从强名称C...
阅读全文
[转】一些常用的DOS网络命令
摘要:一些常用的DOS网络命令一些常用的DOS网络命令================================================================== 一些常用的DOS网络命令 ==================================================================net share abc$=c:\ 将c:盘映射为 abc...
阅读全文
【转】C/C++中宏使用总结
摘要:C/C++中宏使用总结 .C/C++中宏总结C程序的源代码中可包括各种编译指令,这些指令称为预处理命令。虽然它们实际上不是C语言的一部分,但却扩展了C程序设计的环境。本节将介绍如何应用预处理程序和注释简化程序开发过程,并提高程序的可读性。ANSI标准定义的C语言预处理程序包括下列命令: #define,#error,#i nclude,#if,#else,#elif,#endif,#ifdef,#...
阅读全文
【转】深入分析C++中char * 和char []的区别
摘要:深入分析C++中char * 和char []的区别 问题引入:在实习过程中发现了一个以前一直默认的错误,同样char *c = "abc"和char c[]="abc",前者改变其内容程序是会崩溃的,而后者完全正确。程序演示:测试环境Devc++代码运行结果2293628 4199056 abc2293624 2293624 abc2293620 4199056 abc#include <...
阅读全文
【转】程序员这口饭-职业规划解决方案
摘要:有时候人经常会遗忘一些事情,过去的,未来的。有时会纠结于理想和现实。有时候是因为忙碌而忘记思考。有时候是因为无奈而选择忍受。 规划自己的职业道路,以及人生道路是,我们已经不必再来讨论他的重要性,只有谨慎对待。规划更要根据个人的理想,从实际出发。那么怎么才算实际呢?所谓的实际应当包含以往的经验、现有掌握的技术、教育背景、现实的工作环境、以及一些其他因素。如:婚姻、年龄、学习能力。花一些时间来思考这...
阅读全文
浙公网安备 33010602011771号