算法
GarryC
JAVA菜鸟,外包工作,互联网金融行业
展开
-
排序算法比较
选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法,而冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。转载 2015-05-20 08:53:57 · 300 阅读 · 0 评论 -
程序员必须知道的10大基础实用算法及其讲解(1)
算法一:快速排序算法快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来。快速排序使用分治法(Divide and conquer)策略来把一个串行(l转载 2015-05-20 09:06:25 · 507 阅读 · 0 评论 -
程序员必须知道的10大基础实用算法及其讲解(2)
算法五:BFPRT(线性查找算法)BFPRT算法解决的问题十分经典,即从某n个元素的序列中选出第k大(第k小)的元素,通过巧妙的分析,BFPRT可以保证在最坏情况下仍为线性时间复杂度。该算法的思想与快速排序思想相似,当然,为使得算法在最坏情况下,依然能达到o(n)的时间复杂度,五位算法作者做了精妙的处理。算法步骤:1.将n个元素每5个一组,分成n/5(上界)组。 2. 取出每一组的中位数,任意排序转载 2015-05-20 09:27:43 · 508 阅读 · 0 评论