
数据结构与算法
文章平均质量分 78
_forbelief
坚持信仰
展开
-
一些基础算法(1)
关于排序:1,堆排序堆排序有两点,以大根堆为例(1),对仅仅头结点被改变的大根堆的头节点的重新调整。(2),将大根堆的头结点依次转移到存储堆的数组的末尾。在调整模块中,输入的数据仅仅为一个被改变的头结点的大根堆,一般是用数组表示,那么,就需要数组地址,起始位置,长度这些参数。在调整时,有两个关键值,父节点和其最大的子节点,如果父节点大于这个子节点,那么,交换位置就行原创 2015-09-16 16:06:35 · 313 阅读 · 0 评论 -
一些基础算法(2)
关于排序: 1,分治排序 分治排序,顾名思义,就是分而治之,这个排序的方法也有一个基本单元,这个基本单元的输入是两个有序数组,输出是一个有序的数组,这个有序数组的元素是原来 两个有序数组的集合,在有这个基本的单元的基础上,将一个待排序的数组合理的划分为单个元素的数组即此时是有序的,然后两两合并为多个有2个元素的有序数组,然后继续两两合并为多个有4个元素的有序数组,依次类推,直到只有一个有序原创 2015-09-17 16:39:20 · 261 阅读 · 0 评论 -
一些基础算法(3)
关于排序1.基数排序基数排序是按各个元素的每一位上数字的大小依次排序,分为MSD和LSD两种方式,MSD是先排序最高位,然后对结果中被分到同一个组中的数据的下一位继续按位上数字大小继续排序,直到个位排完为止。LSD是先以最低位的数字大小进行排序,接着用第二位进行排序,直到最大元素的最高位排完为止。在这个过程中,可以用数组来作为排序时的桶,先找到数组中桶的分界信息并记录,再按位上数字的大小放原创 2015-09-24 19:24:15 · 244 阅读 · 1 评论