带权中位数-算法导论第三版第九章思考题9-2

b
时间复杂度O(nlgn)

float find_median_with_weights_b(float *array,int length)
{quick_sort<float>(array,0,length-1);float sum = 0;int index = 0;while (sum < 0.5){sum += array[index];index++;}return array[index-1];
}

辅助代码quick_sort
链接地址
c
时间复杂度Θ(n)

float find_median_with_weights_c(float *array,int start,int end,float last_left_sum,float last_right_sum)
{select<float>(array,start,end,(end - start)/2);float left_sum = 0;float right_sum = 0;for (int i = start; i < start + (end - start)/2; ++i) {left_sum += array[i];}for (int i = start + (end - start)/2 + 1 ;i < end+1; ++i) {right_sum+=array[i];}if(left_sum+last_left_sum < 0.5 && right_sum +last_right_sum< 0.5){return array[start + (end - start)/2];}else if(left_sum>0.5){last_right_sum += right_sum;end = (end - start)/2 - 1;}else{last_left_sum += left_sum;start = start + (end - start)/2;}return find_median_with_weights_c(array,start,end,last_left_sum,last_right_sum);
}
float find_median_with_weights_c(float *array,int length)
{return find_median_with_weights_c(array,0,length-1,0,0);
}

辅助代码select
链接地址

带权中位数-算法导论第三版第九章思考题9-2相关推荐

  1. 算法导论第三版第二章思考题答案

    算法导论第三版第二章思考题答案 第二章思考题 算法导论第三版第二章思考题答案 2.1 2.2 2.3 2.4 汇总传送门 2.1 #include<iostream> using name ...

  2. 算法-排序-k排序(算法导论第三版第八章思考题8-5)

    算法-排序-k排序 算法导论第三版第八章思考题8-5 时间复杂度Θ(nlg(n/k)). 利用最小堆完成,把元素分成k个堆,每个堆大小⌈n/k⌉. 利用堆作为子排序稳定,也可以采用其他排序作为子排序, ...

  3. 找出有序数组X和Y中所有元素的中位数(X,Y分别含n个元素)(算法导论第三版9.3-8)

    找出有序数组X和Y中所有元素的中位数(X,Y分别含n个元素) (算法导论第三版9.3-8) 时间复杂度O(lgn) int find_median_two_ordered_arrays(int *ar ...

  4. 确定S中最接近中位数的k个元素(算法导论第三版9.3-7)

    确定S中最接近中位数的k个元素 (算法导论第三版9.3-7题) 时间复杂度O(n) vector<int> k_elements_closest_to_median(int *array, ...

  5. 给出TREE_INSERT过程的非递归版本(算法导论第三版12.3-1)

    给出TREE_INSERT过程的非递归版本(算法导论第三版12.3-1) template<typename T> void insert_recursive(BinaryTree< ...

  6. 写出TREE-PREDECESSOR的伪代码(算法导论第三版12.2-3)

    写出TREE-PREDECESSOR的伪代码(算法导论第三版12.2-3) TREE-PREDECESSOR(x)if x.left != NILreturn TREE-MAXIMUM(x.left) ...

  7. 写出TREE-MINIMUM 和TREE-MAXIMUM的递归版本(算法导论第三版12.2-2)

    写出TREE-MINIMUM 和TREE-MAXIMUM的递归版本(算法导论第三版12.2-2) template<typename T> BinaryTreeNode<T>* ...

  8. 二叉树的中序遍历非递归方法(算法导论第三版12.1-3)

    二叉树的中序遍历非递归方法(算法导论第三版12.1-3) 1⃣️用栈实现 template<typename T> void inorder_tree_walk_non_recursion ...

  9. 二叉树的遍历(算法导论第三版12.1-4)(包含先序遍历,后序遍历和中序遍历)

    二叉树的遍历(算法导论第三版12.1-4) 1⃣️先序遍历 template<typename T> void preorder_tree_wald(BinaryTreeNode<T ...

最新文章

  1. 博客域名改为http://bobli.cnblogs.com
  2. 探索.NET中事件机制(续)——虚事件和事件重写问题,微软的Bug?!
  3. code iban 是有什么组成_「面试」new String(abc)和abc有什么区别?反编译看看原理吧...
  4. zoj1081判断点是否在多边形内
  5. 【java读书笔记】——java的异常处理
  6. Ubuntu中配置FTP服务
  7. 【angularjs】使用angular搭建项目,pc端实现网页中的内容不可复制
  8. 温故知新,.Net Core遇见WinForms客户端窗体框架,在DotNet Core大一统基础上老树发芽...
  9. (Python的)__ name__中包含什么?
  10. 利用Python进行数据分析(1) 简单介绍
  11. windows server上存储提示“由于管理员设置的策略,该磁盘处于脱机状态”
  12. 语义分割和实例分割_2019 语义分割指南
  13. 米思齐Mixly图形化编程---RFID智能门禁
  14. speedoffice(PPT)如何在幻灯片里面插入表格呢
  15. 阿里云mysql导出表,导出mysql表数据库
  16. win10 启动后无法正常显示桌面/黑屏
  17. TI vs Nordic BLE 产品市场分析
  18. 条件运算符与条件if的姻缘,打擂台算法和大小写字母转换,if逻辑避坑
  19. 教育培训机构如何打赢“教育营销流量战“?
  20. centos下ppt转图片

热门文章

  1. C语言试题三十六之将s所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。
  2. linux c的连接库和怎么同时编译多个源程序
  3. ios wkweb设置图片_iOS WKWebView (NSURLProtocol)拦截js、css,图片资源
  4. android studio adil位置,在Android Studio 中正确使用adil ”绝对经典“
  5. 清华放大招!竟然连初三学生都招,一条龙培养到博士,还不准转专业......
  6. 有哪些经济学理论可以用在谈恋爱上?
  7. 【赠书活动】优雅免费领书指南
  8. okcoinapi开发代码_比特币程序化交易入门(5):WebSocket API
  9. 专升本c语言网课听谁的好_都说塑钢泥比玻璃胶好,填缝永不变黑,师傅却说不好用,听谁的?...
  10. php左连接,如何在php中对左联接查询返回的数组数据进...