排序算法概览(二)
摘要:插入排序 算法思路:假想有一个已经排好序的序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数后序列仍然有序。于是,这种算法就叫做“插入排序法”。 算法特点:每次插入一个新的数,此有序序列的长度增加1,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。 具体实现:1.每次处理就是将无序数列的第一个元素与有序数列的元素从后往前逐个进行比较,找出插入位置,将该元素插入到有序数列的合适位置中。 2.插入排序使用增量(Incremental)方法;在排好子序列A[1..j-1]后,将A[j]插入,形成排好序的子数组A[1..j]。 ...
阅读全文
posted @
2013-04-30 22:51
wbqsln
阅读(220)
推荐(0) 编辑
排序算法概览(一)
摘要:常用的排序算法有很多,本文在总结不同排序算法之前先从不同的维度来回顾一下排序算法:【时间复杂度】 也就是指排序所消耗的总时间。对于一个序列List(长度为N)几种不同的性能分别是:1. 最好的性能上O(N); 2. 平均的性能是O(N*log N);3. 最坏的性能是O(N^2) 其中关于对数的运算有如下法则: 1、a^(log(a)(b))=b; 2、log(a)(MN)=log(a)(M)+log(a)(N); 3、log(a)(M÷N)=log(a)(M)-log(a)(N); 4、log(a)(M^n)=nlog(a)(M); 5、log(a^n)(M)=1/nlog(a..
阅读全文
posted @
2013-04-30 22:51
wbqsln
阅读(155)
推荐(0) 编辑
软件开发团队如何尽可能避免加班
摘要:在软件开发公司或部门里,加班通常是一件非常普遍的事情,做软件开发的朋友聚到一起或平时交流都会问:“你们加班多不?”可见加班对于IT男/女来说是的确是非常普遍的,但是却又不可避免。那我就结合我的一些体会谈谈如何在一定程度上避免:-------------------------------------------------------------------作为一个开发人员,上面有架构师(开发领导之类的),那么你能做的可以有很多:1. 清晰的思路:积极参与到需求分析、把功能点尽量细化、排除对需求理解不一致的情况出现。2. 优先级:对所承担的开发任务一定要按照需求方(产品经理或外部客户等)所评估
阅读全文
posted @
2013-04-25 12:04
wbqsln
阅读(521)
推荐(0) 编辑