![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
DS & Algorithm
文章平均质量分 79
daisylliu
这个作者很懒,什么都没留下…
展开
-
寻找数组中最小的k个数 "最小堆方法"
1. 最小堆的调整,插入和删除 一个最小堆,也是完全二叉树,用按层遍历数组表示 (1) 求节点a[n]的子节点的访问方式 (2) 插入一节点的程序 void add_element(int *a, int size, int val); (3) 删除最小节点的程序 按照数组下标,下标为n的结点,它的子结点下标位2*n+1和2*n+2; 插入结点时,先插入到最后,然后再调整堆;原创 2013-10-17 13:08:49 · 805 阅读 · 0 评论 -
寻找数组中最小的k个数 "利用快速排序的思想"
主要思想是:类似快速排序的划分方法, N个数存储在数组S中, 再从数组中随机选取一个数X(随机选取枢纽元, 可做到线性期望时间O(N)的复杂度), 把数组划分为Sa和Sb俩部分, Sa<=X<=Sb, 如果要查找的k个元素小于Sa的元素个数, 则返回Sa中较小的k个元素, 否则返回Sa中所有元素+Sb中小的k-|Sa|个元素. 像上述过程一样, 这个运用类似快速排序的partition的快速选择S原创 2013-10-18 00:33:46 · 1596 阅读 · 0 评论 -
给你10分钟时间,根据上排给出十个数,在其下排填出对应的十个数 要求下排每个数都是先前上排那十个数在下排出现的次数
给你10分钟时间,根据上排给出十个数,在其下排填出对应的十个数,要求下排每个数都是先前上排那十个数在下排出现的次数。 上排的十个数如下: 【0,1,2,3,4,5,6,7,8,9】 举一个例子, 数值: 0,1,2,3,4,5,6,7,8,9 分配: 6,2,1,0,0,0,1,0,0,0 0在下排出现了6次,1在下排出现了2次, 2在下排出现转载 2013-10-23 12:21:33 · 1484 阅读 · 0 评论