随笔分类 -  排序

摘要:桶排序(bucket sort)是一种时间复杂度为线性时间(O(n))的排序。其原理如下:(参考算法导论第8章) 桶排序将[0,1)区间划分为n个大小相同的子区间,每个子区间称之为桶。桶与桶之间是有序的。对于n个输入的数,分别落入不同每一个桶中。落入同一个桶中的元素在结点接入的过程中要查找到其对应的 阅读全文
posted @ 2018-03-15 16:59 土星狗蛋 阅读(309) 评论(3) 推荐(0)
摘要:计数排序的算法思想: 对于每一个元素x,只要确定了元素x有多少个比它小的元素,那么就可以知道其最终的位置。 记输入数组为A[n],存放最后排序输出的数组为B[n],提供临时存储空间的中间数组记为C[k]。 1\首先,将中间数组C[k]清0,其中,0~k为A[n]中元素的取值范围。 2\一边遍历A[n 阅读全文
posted @ 2018-03-15 15:17 土星狗蛋 阅读(175) 评论(0) 推荐(0)
摘要:最近在自学算法导论,看到堆排序这一章,来做一下笔记。堆排序是一种时间复杂度为O(lgn)的原址排序算法。它使用了一种叫做堆的数据结构。堆排序具有空间原址性,即指任何时候都需要常数个额外的元素空间存储临时数据。 堆:二叉堆是一个数组,它可以被看成一个近似的完全二叉树。除了最底层以外,该树是满的;且最底 阅读全文
posted @ 2018-03-12 19:54 土星狗蛋 阅读(465) 评论(0) 推荐(0)
摘要:快速排序 是非常经典的一个算法,可以在对数规模的时间下实现对一组数的排序。 其基于分治的思想,每一趟排序把原组数划分为更小的范围进行排序,并且一定有一个数会在每趟排序下放在最终的位置。 对于一个数组arr[p....r]进行快排: 划分:把数组划分为arr[p...q-1],arr[q],和arr[ 阅读全文
posted @ 2018-01-18 18:07 土星狗蛋 阅读(264) 评论(0) 推荐(0)
摘要:1、二叉排序树的定义 2、二叉排序树的特点 3、二叉排序树的适用场合 4、代码实现 5、代码实现截图 阅读全文
posted @ 2017-09-13 07:17 土星狗蛋 阅读(910) 评论(0) 推荐(0)