基数排序,桶排序,计数排序算法的区别

基数排序(Radix Sort)、桶排序(Bucket Sort)和计数排序(Counting Sort)都是非比较排序算法。也就是说,它们并不是通过比较元素之间的大小关系来进行排序的。

首先,让我们看看三种排序算法的时间复杂度:

基数排序:O(dn) (d次调用桶排序),空间复杂度 O(k) (稍后详解)

桶排序:O(n)时间复杂度,O(n)空间复杂度

计数排序:O(n)时间复杂度,O(k)空间复杂度,每一个元素都是整数,并且位于0到k - 1之间

计数排序 ...

继续阅读

Python vs. PHP下一个项目应该用什么

PHP vs. Python

PHP和Python目前是世界上最流行的两种Web编程语言,自然都有其各自的优点和缺点。然而,在澳大利亚IDG公司——Techworld Australia的出版商——我们在过去的18个月左右的时间里,正在从PHP迁移到Python。虽然我们还没有为这个决定感到后悔,但如果你觉得从PHP切换至Python是一个简单的决定,就大错特错了。

PHP vs. Python: 语言流行程度

毋庸置疑PHP非常的流行;实际上,它现在是最流行的开源编程语言。PHP开发者和PHP工作都是一抓一大把。现在,在Seek.com.au上,澳大利亚就有大概3790个PHP职位。并且这种需求通常转化为一个巨大的开发者资源池,在需要扩展你的团队时,随时可以从中选出可用的开发者。(And this demand generally translates into a large pool of developers that can be tapped ...

继续阅读

随风而逝的StringTokenizer[StackOverflow问答]

数年以前,在刚开始接触Java时,曾经学习过一个用于分割字符串的工具类:StringTokenizer。

例如将字符串"this is a test"按照空白字符进行分割,StringTokenzier的用法示例如下:

StringTokenizer st = new StringTokenizer("this is a test");
while (st.hasMoreTokens()) {
    System.out.println(st.nextToken());
}

虽然Java文档中似乎没有将StringTokenizer标记为deprecated,但实际上这个类已经很少有人在使用了。其功能已经为String.split()方法所取代,上例的字符串可以使用String.split()方法进行分割:

String tokens[] = "this is a test".split ...

继续阅读

年度归档