上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 36 下一页
  2011年7月1日
摘要: 总的来说,排序算法按按平均时间可分为四类:(1)平方阶(O(n2))排序 一般称为简单排序,例如直接插入、直接选择和冒泡排序;(2)线性对数阶(O(nlgn))排序 如快速、堆和归并排序;(3)O(n1+£)阶排序 £是介于0和1之间的常数,即0<£<1,如希尔排序;(4)线性阶(O(n))排序(这就是我们要讨论的分配排序) 如桶、箱和基数排序。分配排序的基本思想:排序过程无须比较关键字,而是通过"分配"和"收集"过程来实现排序.它们的时间复杂度可达到线性阶:O(n)。 箱排序(Bin Sort)1、箱排序的基本思想 箱排序也称桶排序(Buc 阅读全文
posted @ 2011-07-01 09:47 dartagnan 阅读(904) 评论(0) 推荐(0)
摘要: 文中代码见原文链接:http://www.byvoid.com/blog/sort-radix/[非基于比较的排序]在计算机科学中,排序是一门基础的算法技术,许多算法都要以此作为基础,不同的排序算法有着不同的时间开销和空间开销。排序算法有非常多种,如我们最常用的快速排序和堆排序等算法,这些算法需要对序列中的数据进行比较,因为被称为基于比较的排序。基于比较的排序算法是不能突破O(NlogN)的。简单证明如下:N个数有N!个可能的排列情况,也就是说基于比较的排序算法的判定树有N!个叶子结点,比较次数至少为log(N!)=O(NlogN)(斯特林公式)。而非基于比较的排序,如计数排序,桶排序,和在此 阅读全文
posted @ 2011-07-01 09:19 dartagnan 阅读(340) 评论(0) 推荐(0)
  2011年6月30日
摘要: 最近闲来无事,复习了下一些排序算法,温故知新!首先,温故:维基上的排序算法定义其次,推荐两个有意思的算法排序算法网站:(这是老外用JAVA写的一些排序算法)(比较直观地了解各种排序算法过程)CSDN上看到的一些帖子:是不是该取消冒泡排序与插入排序(这个,还是保留得好!)几种排序的实现(其中有一位朋友的学习笔记)关于希尔排序的的“间隔”设置的说明,从书上摘抄下来:在希尔(人名)的原稿中,他建议初始的间距为N/2,简单地把每一趟排序分成了两半。因些,对于N=100的数组逐渐减小的间隔序列为:50,25,12,6,3,1。这个方法的好处是不需要在开始排序前为找到初始的间隔而计算序列;而只需要用2整除 阅读全文
posted @ 2011-06-30 19:55 dartagnan 阅读(165) 评论(0) 推荐(0)
摘要: 是个程序员都知道,在C/C++里面交换值的方法:void swap(int&a ,int&b){ int temp; temp = a; a = b; b = temp;} 但在JAVA中用这种方法是行不通的,因为“Java对普通类型的变量是不支持引用传递的”。怎么办呢?1. 可以像下面这样通过传数组(也属于传值)的方法来完成对换(在很多排序算法里面就是这么干的):public static void swap(int[] data, int a, int b) { int t = data[a]; data[a] = data[b]; data[b] = t; } 2. 也可 阅读全文
posted @ 2011-06-30 19:38 dartagnan 阅读(713) 评论(1) 推荐(0)
  2011年6月23日
摘要: FROM:http://www.blogjava.net/mlh123caoer/archive/2007/09/30/149767.html在Web工程过程中,基于Web系统的测试、确认和验收是一项重要而富有挑战性的工作。基于Web的系统测试与传统的软件测试不同,它不但需要检查和验证是否按照设计的要求运行,而且还要测试系统在不同用户的浏览器端的显示是否合适。重要的是,还要从最终用户的角度进行安全性和可用性测试。然而,Internet和Web媒体的不可预见性使测试基于Web的系统变得困难。因此,我们必须为测试和评估复杂的基于Web的系统研究新的方法和技术。本文将 web 测试分为 6 个部分: 阅读全文
posted @ 2011-06-23 15:53 dartagnan 阅读(285) 评论(0) 推荐(0)
  2011年6月18日
摘要: 问题来源: http://deshell.blog.163.com/blog/static/14095443420108165240503/?fromdm&isFromSearchEngine=yes http://blog.csdn.net/brooksychen/archive/2007/05/24/1624753.aspx http://topic.csdn.net/u/20071207/13/ba649a55-df48-4a19-b8ce-7da332319cf7.html http://hi.baidu.com/freish/blog/item/aa947f8b42c4e11 阅读全文
posted @ 2011-06-18 16:59 dartagnan 阅读(681) 评论(0) 推荐(0)
摘要: 先实现org.rut.util.algorithm.SortUtil这个类(以后每个排序都会用到):package org.rut.util.algorithm;import org.rut.util.algorithm.support.BubbleSort;import org.rut.util.algorithm.support.HeapSort;import org.rut.util.algorithm.support.ImprovedMergeSort;import org.rut.util.algorithm.support.ImprovedQuickSort;import org. 阅读全文
posted @ 2011-06-18 10:59 dartagnan 阅读(472) 评论(0) 推荐(1)
  2011年6月15日
摘要: 事发 我无聊的翻着散落案头的书籍,这些都是五花八门的关于编程和系统管理的著作。干了这么多年程序员,大大小小的软件和项目也做了无数。每每有新入行的朋友问我这个所谓的"老前辈":哪种语言最好之类的问题,我总会作出一副知识渊博的样子,复述着从更老的老前辈那里听来的或者某些名著上看来的"知识"。就好比我们从学习编程的第一天起,就被计算机老师告知,COBOL语言是擅长处理商务事务、FOTRAN语言是用于科学计算一样。类似的知识还有"汇编语言比C语言快得多"以及"JAVA是一种效率很低的语言环境"在一代又一代的程序员中口耳相传 阅读全文
posted @ 2011-06-15 22:26 dartagnan 阅读(2636) 评论(0) 推荐(0)
摘要: java为啥慢?1、java的分配内存java只把内嵌类型分配到堆栈上面,所有Object类型都分配到堆上面。c++可以把局部变量都分配到堆栈上面。显然,根据已有测试结果,访问堆栈的速度要远高于堆的速度。启示1:c++不要返回structure,可以用引用先传入返回对象;启示2:java对象不要随便抛弃,尽量延长其生命周期;但并不是说要维持一个对象pool;2、java没有模板没有模板的缺点就在于需要进行类型转换。类型转换是一个很耗时的操作。如何减少类型转换?3、4、c++的内存占用如何?tr1自带的hashmap(int,int),一个占用16字节,是实际数据的2倍;stl自带的map(in 阅读全文
posted @ 2011-06-15 22:24 dartagnan 阅读(1919) 评论(0) 推荐(0)
摘要: windows的内存管理很是严谨,使用内存必须首先分配,当然每个操作系统都是这样,然而windows的严谨在于分配的过程,分为保留和提交两个阶段,其中保留的含义就是在进程的虚拟地址空间保留一块空间,不能用作他用,保留的概念是针对虚拟地址空间的,而提交的含义是将刚才保留的虚拟地址空间的虚拟内存块映射到物理内存,这里windows扩展了物理内存的含义,包括内存条代表的物理内存和磁盘页文件以及任何可以和真正的物理内存进行换入换出操作的后备存储,提交的概念其实就是一个映射,为了将虚拟内存变得可用而做的一个到实际物理存储的一个映射,就是将假的变真了。 windows的保留和提交两阶段方式涉及到几件事情. 阅读全文
posted @ 2011-06-15 15:31 dartagnan 阅读(2745) 评论(0) 推荐(0)
上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 36 下一页