算法
StrGlee
人生苦短,我用python
展开
-
八大排序算法总结
插入排序 1.直接插入排序 原理:将数组分为无序区和有序区两个区,然后不断将无序区的第一个元素按大小顺序插入到有序区中去,最终将所有无序区元素都移动到有序区完成排序。 要点:设立哨兵,作为临时存储和判断数组边界之用。 实现: Void InsertSort(Node L[],int length) { Int i,j;//分别为有序区和无序区指针转载 2014-03-23 11:14:46 · 475 阅读 · 0 评论 -
【算法-排序之一】冒泡排序
如果数据按照一定的顺序进行排序,数据处理的效率将显著的提高。算法是编程的精髓,一个高效而合适的算法能极大的减少时间消耗与空间消耗,提到“合适”是因为没有哪个算法可以在所有情况下都表现出色,同样是排序,在不同数据规模下各种排序算法有不同的效能表现,选择合适的解决算法的才能最大限度地提高效率。 1.冒泡算法BubbleSort是常用排序算法之一,它的核心是让大(或小)的数据像水转载 2014-03-23 11:15:52 · 406 阅读 · 0 评论 -
【算法-排序之二】快速排序
快速排序得名于实际应用的高效率,它几乎是最快的排序算法,入选20世纪十大算法之列。快速排序体现了计算机设计的“分治法”思想,核心是将整个问题分割成多块相对容易处理的小问题,分而治之。利用分治法原理的排序算法,还有希尔排序算法等等。 1.快速排序QuickSort 核心:如果你知道多少人该站你前面,多少人站你后面,你一定知道你该站哪个位置。转载 2014-03-23 11:16:39 · 406 阅读 · 0 评论 -
【算法-排序之三】插入排序
插入排序是一种简单的排序算法,这是一种从小范围到大范围的递归思想,这种思想类似于数学推导中的递归,首先在最小规模n(1个数的队列)满足要求,再考虑n+1时需要的操作,递归直到最终的结果。当问题规模很大无从下手时,在问题最小规模点思考,然后逐渐递加,不失为一个很好的选择。 1.插入排序InsertSort 核心:以一个人为初始序列,从第二个人开始每转载 2014-03-23 11:17:38 · 406 阅读 · 0 评论 -
排序算法总结-插入排序、希尔排序、堆排序、快速排序
今天去面试被问到了自己知道哪些排序算法,虽然答了一堆,但是想想会的真没几个,所以回来后这里将几个(自认为)重要的写在这里。 1、插入排序 [cpp] view plaincopy //插入排序 //原理:前i项是排过序的,将当前元素插入到前面已经排过序的序列中 //时间界:O(N2) template typename Comp转载 2014-03-23 11:18:32 · 394 阅读 · 0 评论 -
堆排序算法及其c语言泛型编程
一:什么是堆? 1.堆: n个元素的序列{k1,k2,k3,.....kn}当且仅当满足以下关系是,称为堆. {ki 2i 且 ki 2i+1} 或 {k2i i 且 k2i+1 i} (i = 1,2,...[n/2] ).这也是堆的一个性质. 2.堆结构是一种数组对象堆,它可以被视为一棵完全二叉树如下图, 书中每个节点与数组中存放该节点中值的那个元素 对应,除了最后一层,其余的每转载 2014-03-23 11:19:20 · 871 阅读 · 0 评论