随笔分类 -  算法,数据结构,性能相关

摘要:SVN merge的主干,分支的相互合并操作本文只研究了 在本地如何进行主干,分支的相互合并 的操作:从主干到分支,从分支到主干。本地客户端工具是tortoisesvn测试用例。1.本地添加test文件夹在test文件夹下分别建立trunk,branches两个文件夹,建立好以后,提交到svn服务器... 阅读全文
posted @ 2013-11-06 14:51 音乐啤酒 阅读(21706) 评论(10) 推荐(3) 编辑
摘要:Microsoft Web Application Stress Tool微软的分布式网站性能压力测试工具Window性能监视器1.监测IIS连接数量从“开始”菜单上选择“运行”。在“打开”文本框中输入“perfmon”,然后单击“确定”。在性能监视器工具中,在左侧窗格里选择 System Monitor 对象,然后右击“性能”图表。选择“添加计数器”。Web Service>Current Connections。 再选择相应的实例添加2.Sqlserver的用户连接数量添加sqlserver-general statistics 阅读全文
posted @ 2013-08-30 16:24 音乐啤酒 阅读(234) 评论(0) 推荐(0) 编辑
摘要:多线程和异步操作的异同 多线程和异步操作两者都可以达到避免调用线程阻塞的目的,从而提高软件的可响应性。甚至有些时候我们就认为多线程和异步操作是等同的概念。但是,多线程和异步操作还是有一些区别的。而这些区别造成了使用多线程和异步操作的时机的区别。 异步操作的本质 所有的程序最终都会由计算机硬件来执行,所以为了更好的理解异步操作的本质,我们有必要了解一下它的硬件基础。 熟悉电脑硬件的朋友肯定对DMA这个词不陌生,硬盘、光驱的技术规格中都有明确DMA的模式指标,其实网卡、声卡、显卡也是有DMA功能的。DMA就是直接内存访问的意思,也就是说,拥有DMA功能的硬件在和内存进行数据交换的时候可以不消... 阅读全文
posted @ 2012-05-27 10:43 音乐啤酒 阅读(272) 评论(0) 推荐(0) 编辑
摘要:2路插入排序算法,是在直接插入排序和折半插入排序算法上 再改进的。主要目的是减少排序过程中的移动的记录次数。但是需要N个记录的辅助空间,原理是:设置一个和原数组L 同类型,大小的是数组d,首先将L【0】赋值给D【0】。然后L【1】和D【0】比较,并且将D【0】看成是排好序中处于中间位置的记录,然后从L的第二个记录开始比较,依次插入到D【0】之前或者之后的有序序列中。如果要排序的L【n】记录比D【0】 则插入到之前的序列中重点是要把辅助数组看成是循环数组,设置first和final标识,来记录辅助数组的开头和结尾。first记录D的开头位置。final机制D的结尾位置,排好序以后,从first开 阅读全文
posted @ 2010-08-24 01:46 音乐啤酒 阅读(489) 评论(0) 推荐(0) 编辑
摘要:直接插入排序算法,是一个查找和插入的过程,其中的查找过程可以使用折半查找方法来代替,因为插入排序的序列也是一个有序的序列直接插入排序算法的连接有序序列的折半查找算法的链接c#代码 #region 折半插入排序算法 public static void HalfInsertSort(ref int[] array) { for(int i=2;i<array.Length;++i) { array[0] = array[i]; //或者也可以添加if (array[i] < array[i - 1])先行判断 int low = 1; int high = i - 1; while( 阅读全文
posted @ 2010-08-23 23:27 音乐啤酒 阅读(378) 评论(3) 推荐(0) 编辑
摘要:选择排序的基本思想是:每一趟在n-i+1(i=1,2,…n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录。 主要有:简单选择排序、树型选择排序和堆排序。简单选择排序 简单选择排序的基本思想:第i趟简单选择排序是指通过n-i次关键字的比较,从n-i+1个记录中选出关键字最小的记录,并和第i个记录 进行交换。共需进行i-1趟比较,直到所有记录排序完成为止。例如:进行第i趟选择时,从当前候选记录中选出关键字最小的k号记录,并和第i个记录进行交 换c#代码:#region 简单选择排序 static void SimpleSelectSort(ref int[] array) { fo.. 阅读全文
posted @ 2010-08-20 23:35 音乐啤酒 阅读(203) 评论(0) 推荐(0) 编辑
摘要:快速排序(Quicksort)是对冒泡排序的一种改进。由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。比如序列如下:int[] array = {0,49,38,65,97,76,13,27,49 };【0】下标作为暂时存储关键key的位置选取一个数据作为关键key,最初默认就是数组的第一个数字,比如49.设置low和high,下标位置和上标位置。最初默认low就是1,high就是 阅读全文
posted @ 2010-08-19 01:39 音乐啤酒 阅读(298) 评论(0) 推荐(0) 编辑
摘要:希尔排序(Shell Sort)是插入排序的一种。是针对直接插入排序算法的改进。该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。基本思想 希尔排序基本思想: 先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。所有距离为dl的倍数的记录放在同一个组中。先在各组内进行直接插入排序;然后,取第二个增量d2<d1重复上述的分组和排序,直至所取的增量dt=1(dt<dt-l<…<d2<d1),即所有记录放在同一组中进行直接插入排序为止。 该方法实质上是一种分组插入方法。 给定实例的shell排序的排序过程 假设待排序文件有10个记录,其 阅读全文
posted @ 2010-08-17 22:35 音乐啤酒 阅读(280) 评论(0) 推荐(0) 编辑
摘要:直接插入排序(straight insertion sort)是一个简单的排序方法,他的基本操作是将一个记录插入到已经排好序的有序表中,从而得到一个新的,记录数增1的有序表。例如,已知待排序的一组记录初始排列如下: 49,38,65,97,76,13,27,49 -----a假设排序过程中,前4个记录已经有序,构成了一个有序列,如 38,49,65,97 ----------b现在要将第五个记录76插入到上面序列中,以得到一个新的含5个记录的有序序列。在b序列中进行查找以确定76应该插入的位置,然后进行插入。假设从左开始查找,则76应该插入到65和97之间。这就是一趟直接插入排序。一般情况下, 阅读全文
posted @ 2009-12-24 19:13 音乐啤酒 阅读(1939) 评论(0) 推荐(0) 编辑
摘要:这是一个比较有意思的二叉树。也是研究动态查找表一种方法动态查找表是在查找一个表(某个数据结构)的过程,不仅仅有查询过程,也有添加,删除的操作。二叉排序树(Binary Sort Tree)具有以下性质:1.如果他的左子树不空,则左子树上所有结点的值都小于他的根结点的值。2.如果他的右子树不空,则右子数上所有结点的值都大于他的根结点的值。3.他的左右子树分别也是二叉排序树。图示: 二叉排序树又称二叉查找树,根据上述的特点,他的查找过程和次优二叉树类似。查询的时候当树不空的时候,先将判断的值和树的根结点比较,如果相等则查找成功。如果不等根据大小关系,继续在左右子树上进行查询。 通常使用二叉链表作为 阅读全文
posted @ 2009-12-24 01:01 音乐啤酒 阅读(306) 评论(0) 推荐(0) 编辑
摘要:分块查找也称索引顺序查找,是顺序查找的一种改进方法。在此查找法中,除表本身以外,尚需建立一个“索引表”。比如表22,12,13,8,9,20,33,42,44,38,24,60,58,74,49,86,53可以将表分成3个子表:从(1.。。6),(7.。。。12,(13.。。18)对每个子表建立索引项,索引项包含两个内容:关键字项(就是子表的最大关键字),指针项(指示这个关键字在子表的第一个记录在总表中的位置)。索引表按关键字有序,则表或者有序或者分块有序。“分块有序”指的是第二个字表的所有记录都大于第一个字表,依次类推。因此分块查找分两部分。先确定待查记录所在的块也就是子表,然后在块(子表) 阅读全文
posted @ 2009-12-22 23:55 音乐啤酒 阅读(3096) 评论(0) 推荐(0) 编辑
摘要:从图的某一个顶点出发访问遍图中其余所有顶点,并且使每个顶点只被访问一次,这个过程称为图的遍历。 在图的遍历过程中,为了避免某个顶点被多次访问,一般使用一个辅助数组vistied【n】,他的初始值是false,对应的顶点访问过一会值为true。图的遍历算法有:深度优先搜索和广度优先搜索,对无向图和有向图都适用。 以该图a为描述实例 1 深度优先搜索 (Depth_First_Search) 深度优先搜索类似于树的先根遍历,深度优先搜索从图中某个顶点v出发,访问此顶点,然后依次从v的未访问的邻接点出发深度优先遍历图,直至和v有路径相同的顶点都被访问过;若此时图中尚有顶点未被访问,则另选图中一个未. 阅读全文
posted @ 2009-12-21 19:43 音乐啤酒 阅读(403) 评论(0) 推荐(0) 编辑
摘要:图的结构比较复杂,任意两个顶点之间都可能有联系,因此无法以数据元素在存储区中的物理位置来确定元素的关系,所以图没有顺序映像的存储结构,但是可以借助数组的数据类型来表示元素之间的关系。 另一方面,用多重链表表示图是自然的事,他是一种最简单的链式映像存储结构,即由一个数据域和多个指针域组成的节点表示图中的一个顶点,其中数据域存放顶点的信息,指针域指向其邻接点的指针。 图有以下几种存储结构 1 数组表示法 用两个数组分表存储图的顶点信息和数据元素之间的关系(也就是图的边或弧的信息) 形式如下: --------------图的数组(领教矩阵)存储表示----------- #define infi. 阅读全文
posted @ 2009-12-21 02:03 音乐啤酒 阅读(621) 评论(0) 推荐(0) 编辑
摘要:递归是程序设计中一个强有力的工具,在数据结构中 递归的实现是通过栈这个数据结构来实现的递归设计的实质是:当一个复杂的问题可以分解成若干子问题来处理时,其中某些子问题与原来问题有相同的特征属性,则可以利用和原来问题相同的分析处理方法;反之,这些子问题解决了,原来的问题也就解决;递归定义的归纳就是描述这种原问题和子问题之间的转换关系。以汉诺塔为例(Hanoi)假设有3个塔名字分别是x,y,z。在塔x的上面插有n个直径大小各不相同,从小到大编号为1,2,3,n的圆盘。现在要求将x塔上的n个圆盘移动到z塔上。并按同样的顺序来排列,圆盘移动的时候必须遵循以下规则:1,每次只移动一个;2,圆盘可以插在x, 阅读全文
posted @ 2009-12-17 23:28 音乐啤酒 阅读(264) 评论(0) 推荐(0) 编辑
摘要:字符串的模式匹配,就是通常见的IndexOf函数的实现过程。就是查询某个字符串T在另外一个字符串S中出现的位置使用定长顺序存储结构的字符串可以简单的描述这个过程先假定几个前提,设置几个类型#define SIZE 80typedef struct Chunk{char ch[SIZE];struct Chunk *next;}Chunk;typedef struct{Chunk *head,*tail;//串的头尾指针int curLen;//串的当前长度}//c,c++的字符串中0位置存储的是串的长度匹配思想如下:分别用指数i和j指示主串S和子串T的当前要比较的字符串的位置。基本思想是:从主 阅读全文
posted @ 2009-12-16 23:19 音乐啤酒 阅读(520) 评论(0) 推荐(0) 编辑
摘要:今天在看到数据结构 静态表的查找的时候,看到一个算法挺有意思,理解也 比较容易。这是一个有序表的查找算法,比如(2,3,4,5,11,22,23,44,55,57,88)这样的有序结构。折半查找(binary search)的过程:先确定带查记录所在的范围或者区间,然后逐步缩小范围,直到找到或者找不到该记录为止。比如待查的记录key是23.刚开始low的位置1,high的位置是11.那么中间的mid的位置是(1+11)/2;相对于的结构对象arr[low/mid/hight]可以找到对应的各个数据记录。2,3,4,5,11,22,23,44,55,57,88|| |lowmidhigh使用ar 阅读全文
posted @ 2009-08-06 18:51 音乐啤酒 阅读(1283) 评论(0) 推荐(0) 编辑
摘要:看了几天Symbian开发,感觉真的复杂,还是微软程序员好干。先说说开发环境吧,需要安装active perl,Java,s60的sdk和ide网上文章比较多,搜索一下就找了这个ide的问题,现在比较推荐carbide c++2。0完全免费的,算是eclipse的,完整的ide。还有一个carbide.vs是一个插件,就可以是vs2003,2005来开发,但是好像nokia已经不发展了。还有一个比较新的就是QT creator,网上的文章说这个太厉害了。有质的变化,提供新的完整类库,原来要写100行代码实现的功能,现在10行就搞定了,呵呵,不过只是技术预览版,而且好像还是收费的版本。所以现在还 阅读全文
posted @ 2009-05-19 04:01 音乐啤酒 阅读(244) 评论(0) 推荐(0) 编辑
摘要:提高网站速度的最佳实践【翻译】原文地址是这个地方:http://developer.yahoo.com/performance/rules.html,英语水平有限,翻译可能不到位,自己再看看这个英文原版了。1.最小化HTTP请求终端用户响应时间的80%用在前端显示上,大部分时间浪费在下载页面组件上面,比如:图片,css样式,flash,脚本等等,降低返回的http请求的页面的组件数量,这是加快页面的重要环节。减少页面组件的一个方法就是简化页面设计,但是如果要设计一个富页面应用的web系统如何减少组件呢?下面有些技术可减少http请求,同时可以开发富页面程序css样式是减少图片数量的一个比较好的 阅读全文
posted @ 2009-02-17 22:04 音乐啤酒 阅读(245) 评论(0) 推荐(0) 编辑
摘要:这里的大型网站架构只包括高互动性高交互性的数据型大型网站,基于大家众所周知的原因,我们就不谈新闻类和一些依靠HTML静态化就可以实现的架构了,我们以高负载高数据交换高数据流动性的网站为例,比如海内,开心网等类似的web2.0系列架构。我们这里不讨论是PHP还是JSP或者.NET环境,我们从架构的方面去看问题,实现语言方面并不是问题,语言的优势在于实现而不是好坏,不论你选择任何语言,架构都是必须要面对的。 这里讨论一下大型网站需要注意和考虑的问题 1、海量数据的处理 众所周知,对于一些相对小的站点来说,数据量并不是很大,select和update就可以解决我们面对的问题,本身负载量不是很大,最多 阅读全文
posted @ 2009-02-16 19:02 音乐啤酒 阅读(136) 评论(0) 推荐(0) 编辑
摘要:使用loadruner做压力测试,版本是9.0最近公司使用的web接口,在上线的时候经常会挂掉,怀疑是系统性能问题,就想使用loadruner做一下压力测试从头开始学了,loadruner是hp的产品了,9.0的版本。loadruner是用来做压力测试和性能测试的强大工具,实在太强悍了,以至于我看了几天也只是熟悉很少一部分而已。1.loadruner9.0的下载以及破解,网上文章很多,百度,google一下就可以。9.0还是英文版本。破解的时候要求你输入license。网上流传的是两个版本,一个global,一个是web,他们的注册码不一样,对应的协议也不一样,推荐使用global他支持协议多 阅读全文
posted @ 2009-01-13 22:09 音乐啤酒 阅读(899) 评论(0) 推荐(0) 编辑