算法
迷失的小书童
做一个简单的人,踏实务实。不沉溺幻想。不庸人自扰。要快乐,要开朗,要坚韧,要温暖,对人要真诚。要诚恳,要坦然,要慷慨,要宽容,要有平常心。永远对生活充满希望,对于困境与磨难,微笑面对。多看书/看好书,少吃点/吃好的。要有梦想,即使遥远。内心温暖而坚定!
展开
-
快速排序--Java实现
<br />快速排序(QuickSort)<br />1、思想<br />快速排序是一个就地排序,分而治之,大规模递归的算法。从本质上来说,它是归并排序的就地版本。快速排序可以由下面四步组成。<br /><br />(1) 如果不多于1个数据,直接返回。<br />(2) 一般选择序列最左边的值作为支点数据。<br />(3) 将序列分成2部分,一部分都大于支点数据,另外一部分都小于支点数据。<br />(4) 对两边利用递归排序数列。<br /><br />快速排序比大部分排序算法都要快。尽管我们可以在某原创 2011-05-27 10:41:00 · 396 阅读 · 0 评论 -
冒泡排序法----Java实现
<br />冒泡排序(BubbleSort)<br />1、思想<br />通过无序区中相邻记录关键字间的比较和位置的交换,使关键字最小的记录如气泡一般逐渐往上“漂浮”直至“水面”。 <br /> <br />2、时间复杂度 <br />最好情况下:正序有序,则只需要比较n次。故,为O(n) <br />最坏情况下: 逆序有序,则需要比较(n-1)+(n-2)+……+1,故,为O(N*N)<br /> <br />3、稳定性 <br />排序过程中只交换相邻两个元素的位置。因此,当两个数相等时,是没原创 2011-05-27 11:00:00 · 484 阅读 · 0 评论 -
排序算法
<br /><br />转载于 : http://blog.csdn.net/likefrank/archive/2008/09/24/2974949.aspx<br />1 快速排序(QuickSort)<br /><br />快速排序是一个就地排序,分而治之,大规模递归的算法。从本质上来说,它是归并排序的就地版本。快速排序可以由下面四步组成。<br /><br />(1) 如果不多于1个数据,直接返回。<br />(2) 一般选择序列最左边的值作为支点数据。<br />(3) 将序列分成2部分,一部分都原创 2011-05-27 10:31:00 · 341 阅读 · 0 评论 -
归并排序————Java实现
归并排序(MergeSort)1、思想:多次将两个或两个以上的有序表合并成一个新的有序表。2、算法时间复杂度 最好的情况下:一趟归并需要n次,总共需要logN次,因此为O(N*logN) 最坏的情况下,接近于平均情况下,为O(N*logN) 说明:对长度为n的文件,需进行logN 趟二路归并,每趟归并的时间为O(n),故其时间复杂度无论是在最好情况下还是在最坏情况下均是O(nlgn)。3、稳定性 归并排序最大的特色就是它是一种稳定的排序算法。归并过程中是不会改变元素的相对位置的。 4原创 2011-05-27 17:17:00 · 564 阅读 · 0 评论 -
插入排序————Java实现
<br />插入排序(InsertSort)<br />插入排序通过把序列中的值插入一个已经排序好的序列中,直到该序列的结束。插入排序是对冒泡排序的改进。它比冒泡排序快2倍。一般不用在数据大于1000的场合下使用插入排序,或者重复排序超过200数据项的序列。<br />1、思想<br />每次选择一个元素K插入到之前已排好序的部分A[1…i]中,插入过程中K依次由后向前与A[1…i]中的元素进行比较。若发现发现A[x]>=K,则将K插入到A[x]的后面,插入前需要移动元素<br />2、算法时间复杂度<br原创 2011-06-01 13:41:00 · 499 阅读 · 0 评论 -
SleepSort算法——Java实现
最近在网上看到一则SleepSort算法(用Shell脚本写的):代码如下:---------------------------------------------------------------------------- #!/bin/bashfunction f() { sleep "$1" echo "$1"}wh原创 2011-06-23 10:02:00 · 494 阅读 · 0 评论 -
MD5加密算法
import java.security.NoSuchAlgorithmException;import java.security.MessageDigest; public abstract class MD5EncryptUtils { private MD5EncryptUtils() { } public static String MD原创 2011-06-28 15:23:00 · 371 阅读 · 0 评论 -
十个顶级的C语言资源助你成为优秀的程序员
转自: http://blog.csdn.net/xuexingyang/article/details/6903984十个顶级的C语言资源助你成为优秀的程序员译者言:学习C语言,需要一点一滴,沉下心来,找个安静的地方,泡上一杯咖啡,在浓郁的香味中一起品味她。(by Boatman Yang)人们通常认为计算机编程很烦,但是有些人却从中发现了乐趣。每一个程序员不转载 2011-10-26 22:47:00 · 600 阅读 · 0 评论 -
java多线程之生产者消费者队列
java多线程一般都会讲消费者-生产者模型生产者与消费者模型中,要保证以下几点:1 同一时间内只能有一个生产者生产2 同一时间内只能有一个消费者消费3 生产者生产的同时消费者不能消费4 消息队列满时生产者不能继续生产5 消息队列空时消费者不能继续消费----------------------------------------------------Messa原创 2011-12-03 10:47:30 · 1010 阅读 · 0 评论