希尔排序是由D.L.Shell于1959年提出的,所以称为希尔排序。希尔排序又称缩小增量排序,是插入排序的一种改进。
基本思想:希尔排序是基于插入排序的以下特点:待排序的序列元素数量越少排序速度越快;待排序序列的元素基本有序时排序速度越快;基于以上思想将待排序序列分为多个子序列分别进行插入排序,然后...
分类:
其他好文 时间:
2014-05-13 22:11:01
阅读次数:
272
前几天写了个音乐播放器,添加了歌词播放功能,起初一直在考虑是否要用c语言的排序方法。没想到
oc 强大到早已做好了方法。简单又高大上。 [arrayNamesortUsingSelector:@selector(compare:)];
arrayName 是可变数组,compare: 是...
分类:
移动开发 时间:
2014-05-13 22:00:41
阅读次数:
422
前面我们写了常见的几种排序算法,并分析了各种算法的实现思想,及时间复杂度等情况,但由于只是分析,木有实际的数据做对比测试,所以对各个算法的效率也没有一个明确的概念,下面我们就通过具体的测试来看看同算法之间的效率差距。声明11个长度为100的元素取值范围为0到1000的序列int
length = 1...
分类:
其他好文 时间:
2014-05-13 21:46:24
阅读次数:
323
桶排序是一种效率很高的排序算法,它的时间复杂度为O(n),但桶排序有一定的限制,只有当待排序序列的元素为0到某一确定取值范围的整数时才适用,典型的例子比如成绩的排序等。
算法思想: 设待排序序列的元素取值范围为0到m,则我们新建一个大小为m+1的临时数组并把初始值都设为0,遍历待排序序列,把待排序序...
分类:
其他好文 时间:
2014-05-13 21:23:40
阅读次数:
351
1 /** 2 题意: 求对于小于m的n个数, 求x1*a1 +
x2*a2+x3*a3........+xn*an = 1 3 即求 a1,a2,a3,。。。。an 的最大公约数为1 , a1,a2....an 可重复 4
原理 : 容斥原理 所有的 排序即 m^n ——不符合的情况 ,即为...
分类:
其他好文 时间:
2014-05-13 20:48:43
阅读次数:
243
很多时候,我们都会去计算一次数据里头的相同型态的数据总数,举例来说, 使用 last
可以查得这个月份有登陆主机者的身份。那么我可以针对每个使用者查出他们的总登陆次数吗?
此时就得要排序与计算之类的命令来辅助了!底下我们介绍几个好用的排序与统计命令,首先是排序命令sort。[root@www ~.....
分类:
系统相关 时间:
2014-05-13 20:23:05
阅读次数:
375
1 /** 2 极角排序输出,,, 3 主要atan2(y,x) 容易失精度,,用 4 bool
cmp(point a,point b){ 5 if(cross(a-tmp,b-tmp)>0) 6 return 1; 7
if(cross(a-tmp,b-tmp)...
分类:
其他好文 时间:
2014-05-13 20:05:34
阅读次数:
242
public class BubbleSort{ public static void
main(String[] args){ int[] sortArray = new int[]{5,7,4,2,9,8,3,6};
System.out.println("before sorting ,t.....
分类:
编程语言 时间:
2014-05-13 19:45:04
阅读次数:
366
今天重温了一下策略模式,将自己的一些感悟与大家分享。。。本人只是技术渣渣,所理解的东西的难免会有很大的局限性甚至是错误,还请各位带着批判的眼光去看待。。。。不喜请勿吐槽 定义:策略模式属于设计模式中的对象行为型模式,它将用到的算法单独抽象成一个单独的类。通常,我们在多个类完成同一件事情,仅仅完成的方式不同时,我们可以考虑使用这种设计模式。 举例:相...
分类:
其他好文 时间:
2014-05-13 07:04:35
阅读次数:
241
堆排序分为两个阶段:1、将原始数组组装成一个堆;2、从堆顶逐个取出元素并得到排序结果。(如果是最大堆,则是重复删除最大元素,然后从后往前放入到数组。)
用sink()只需扫描数组中的一半元素。
堆排序可以不需要额外的空间,最优的利用空间和时间。可用于嵌入式系统。缺点:无法利用缓存,影响缓存命中。...
分类:
其他好文 时间:
2014-05-13 05:43:27
阅读次数:
207