数据结构和算法
xiaoyuntech
这个作者很懒,什么都没留下…
展开
-
简单的排序
简单的选择排序要点:在数组中每扫描一遍都选出一个最小值依次和前面的值交换第一次交换第一个,第二次交换第二个,以此类推。void selectSort(int *arr){ int i=0,begin=0,end=0,minPosition=0; for(i=0; i<length-1; i++){//最后一趟都不用比length-1原创 2017-03-29 23:49:36 · 224 阅读 · 0 评论 -
合并排序算法
【核心思想】 分治思想,但在此只管分即可,合并的时候在按次序叠放。常见的方式是,每次递归地把数组按2路分划分,一直分到每个部分成了单个元素,然后递归开始回升整理,按次序合并输出到一个临时数组中去,再把临时数组的有序结果放在原数组的原部分位置,合并完毕,由原数组内存地址带出结果。 【操作要点】 1划分的位置计算 2要借助临时数组来存放中间的合并结果,中间结果要归还到原数组带出。【代码描述】vo原创 2017-03-30 12:51:11 · 466 阅读 · 0 评论 -
堆排序详解
1,什么是堆? 堆就是满足一定规律的二叉树,这个规律是 :任意父节点中的关键字>直接子节点的关键字(大头堆)或 任意父节点的关键字<直接子节点的关键字(小头堆)。 如图所示一个大头堆: 图1 大头堆示例2,堆如何存储? 一般采用数组(连续内存结构)来存储在内存中操作。 如上图,我们只要按图节点上的序号按数的层次排列到数组中就可以了。如下图: 图2 堆存储结构 此时,若仅知这么一个数组如原创 2017-04-13 23:14:21 · 743 阅读 · 0 评论