数据结构和算法
alosoopnet
这个作者很懒,什么都没留下…
展开
-
C语言算法系列:堆排序
我发现自己把数据结构和算法里的很多内容都忘了,今天面试的时候面试官问我堆排序,我居然没有完整地回答出来。看来这些基础知识还是很重要的,所以我打算从今天开始复习,为以后找工作做准备。 总结一下算法的主要思想,不能下次别人问的时候又不知道了。以从小到大排序为例,堆排序的重点分为两步: 1)建立一个初始的大顶堆; 2)现在最大的元素在堆顶arr[0],将它和最末尾的元素arr[size]交原创 2013-10-29 21:45:58 · 882 阅读 · 0 评论 -
C语言算法系列:快速排序
快速排序的精髓在于分治法的思想。为了解决一个数组的排序问题,可以将这个数组分为两个规模更小的子数组,对它们分别进行排序。 划分的关键就在于partition函数了。它指定数组中的一个元素作为主元(pivot),然后比较其它元素与它的大小,比它小的元素集中地放在一起,比它大的元素也集中地放在一起。为了减小数组中元素的移动次数,我们将数组最末尾的数字作为主元。数组由下标从小到大的顺序,依次是较小元素原创 2013-10-30 18:34:32 · 745 阅读 · 0 评论