摘要: 常用的排序算法有很多,本文在总结不同排序算法之前先从不同的维度来回顾一下排序算法:【时间复杂度】 也就是指排序所消耗的总时间。对于一个序列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 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 插入排序 算法思路:假想有一个已经排好序的序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数后序列仍然有序。于是,这种算法就叫做“插入排序法”。 算法特点:每次插入一个新的数,此有序序列的长度增加1,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。 具体实现:1.每次处理就是将无序数列的第一个元素与有序数列的元素从后往前逐个进行比较,找出插入位置,将该元素插入到有序数列的合适位置中。 2.插入排序使用增量(Incremental)方法;在排好子序列A[1..j-1]后,将A[j]插入,形成排好序的子数组A[1..j]。 ... 阅读全文
posted @ 2013-04-30 22:51 wbqsln 阅读(218) 评论(0) 推荐(0) 编辑