算法
这个呢称没人用
这个作者很懒,什么都没留下…
展开
-
几种常见排序算法
1. 快速排序 介绍: 快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来,且在大部分真实世界的数据,可以决定设计的选择,减少所需时转载 2013-11-16 16:57:34 · 530 阅读 · 0 评论 -
插入排序算法
一般来说,插入排序都采用in-place在数组上实现。具体算法描述如下: 从第一个元素开始,该元素可以认为已经被排序取出下一个元素,在已经排序的元素序列中从后向前扫描如果该元素(已排序)大于新元素,将该元素移到下一位置重复步骤3,直到找到已排序的元素小于或者等于新元素的位置将新元素插入到该位置后重复步骤2~5 insertsort.c #include main() { i原创 2013-11-08 13:01:02 · 573 阅读 · 0 评论 -
汉诺塔的实现 递归
河内塔是根据一个传说形成的一个问题: 有三根杆子A,B,C。A杆上有N个(N>1)穿孔圆盘,盘的尺寸由下到上依次变小。要求按下列规则将所有圆盘移至C杆: 每次只能移动一个圆盘;大盘不能叠在小盘上面。 提示:可将圆盘临时置于B杆,也可将从A杆移出的圆盘重新移回A杆,但都必须遵循上述两条规则。 问:如何移?最少要移动多少次? 递归的思想 A->C 如何实现n-1个从A到原创 2013-11-08 13:21:50 · 621 阅读 · 0 评论 -
快速排序算法笔记
快速排序是一种排序算法,对包含n个数的输入数组,最坏情况运行o(n*n),快速排序通常是用于排序的最佳实用选择,这是因为其平均性能相当好:期望的运行时间为o(nlgn)。其中隐含的常数因子很小。另外,它能进行就地排序,在虚存环境中也能很好地工作。(详见算法导论p145) 对数组v[left......right]进行从小到大快速排序 void qsort(int v[]原创 2013-11-07 17:11:08 · 637 阅读 · 0 评论