算法
InputSrc
主要业务网络编程,少量GUI应用开发。对Web开发有着浓厚兴趣,喜欢LAMP开发中小型系统。
展开
-
排序算法(四):Shell排序
排序思路: 该算法是直接插入排序的优化算法。采用粗略排序到精确排序的思路,首先粗略的,按照步长step=len/2,选取元素(相距step远为一组)执行直接排序算法,此时元素都是两两为一组。排序好后,在将步长放短,step=step/2。依次类推。这样的好处在于,每次执行直接插入排序时,排序复杂度都会降低,减少了排序次数。 样例: {22,35,16,9,5,20} 1)设定步长step...原创 2018-07-23 23:05:28 · 411 阅读 · 0 评论 -
排序算法(一):冒泡排序
排序思路: 样例:{22,35,16,9,5,20} 1. 从首位元素开始,前后元素相比较,保证“小在前、大在后”。逐个元素向后递推。一遍结束后,最大元素将位于排序末位。 结果:{22,16,9,5,20,35} 2. 因为最大元素已经排位完毕,所以不考虑末位最大元素,从头开始,再做一轮排序。 排序范围:{22,16,9,5,20} 结果: {16,9,5,20,22,35} 3...原创 2018-07-19 15:24:11 · 179 阅读 · 0 评论 -
排序算法(五):选择排序
排序思路: 找到当前数组中最小元素,放在数组首位,然后刨去首位,在剩下的待排序元素中查找最小元素,放于首位后面。如此往复,将每次查找到的最小元素逐个按序放在数组最前端,直到排序完成。 举例: {22,35,16,9,5,20} 1)我们设a[0]为初始最小值,把其与其后的元素一起比较,找出最小值5。交换22与5。 {5,35,16,9,22,20} 2)现在5已经排好了。继续把...原创 2018-07-25 01:08:04 · 166 阅读 · 0 评论 -
排序算法(六):堆排序
排序思路: 采用维护大根堆的方法,取堆顶(最大值)到已排序数组,同时从堆中剔除堆顶,用堆末尾元素补充到堆顶,进行下一轮堆维护。 堆是一种完整二叉树的数据结构。可以将待排序数组转化为堆结构。 最后一个非叶子节点:a[len/2-1] 若对于一个非叶子节点a[i],左孩子节点是a[2*i+1],右孩子节点是a[2*i+2]。 大根堆是指堆满足每一个非叶子节点都大于其孩子节点。 a[i]...原创 2018-07-25 18:44:54 · 188 阅读 · 0 评论 -
排序算法(二):快速排序
排序思路: 分而治之。以首位元素作为分割标准(pivot),小于该值的元素(无需排序)置于pivot前部,大于该值的元素(无需排序)置于pivot后部。采用递归思想,对“前部数组”进行分割,后部数组同样进行分割。直到无法继续“分割”。 样例: {22,35,16,9,5,20} 1.找标志位(一般的,我们取array[0]作为我们的首位) {__,35,16,9,5,20} ...原创 2018-07-21 01:42:54 · 183 阅读 · 0 评论 -
排序算法(三):直插排序
排序思路: 设定数组首端元素为待插入元素tmp,将其与左侧所有元素进行比较,按照从小到大的顺序进行排序。 若从a[0]开始,其左侧没有元素,故一般的,从a[i] (i>0)开始,执行上述的排序方法。 令tmp=a[i],若遇到大于tmp的元素,则向前继续比较,遇到小于tmp的元素后,将tmp插入其后,停止比较。 样例: {22,35,16,9,5,20} 设 i 指向a[1]...原创 2018-07-22 19:41:13 · 2177 阅读 · 0 评论 -
排序算法(七):归并排序
排序思路: 分治:将长度为len的数组array分为[0, len/2],[len/2+1, len-1],直到无法继续划分为止。 合并:将子数组逐级合并,合并过程中进行排序——申请与len相当大小的空间tmp[],当前合并2个数组元素相互比较,从小到大,排入到tmp。排序好的tmp复写array对应的索引位置。 举例: {22,35,16,9,5,20} 1)分治 {22,...原创 2018-07-31 11:10:57 · 191 阅读 · 0 评论 -
排序算法(八):基数排序
排序思路: 本文采用LSD(Least significant digital)排序方式,基数取10。 对于给定数组,先按照个位进行排序,再按照十位进行排序,再按照百位进行排序……没有该位的,排序时按0处理。 桶子思想:定义,选取个位、十位、百位…等进行元素比较,为一轮。每一轮排序过程,我们准备10个清空的桶子,按照0-9的顺序编号,将该位是对应编号的元素,放入对应的“木桶”中(每个桶中正常...原创 2018-08-01 16:19:48 · 274 阅读 · 0 评论