实验报告

课程名称 《算法分析与设计》 实验日期 2021 年 4 月 18 日 至 2021 年 4 月 25日
学生姓名 石晨昊 所在班级 计算机194 学号 2019212212322
实验名称 选第K小元素
实验地点 同组人员

1.问题
从无序数组中找到第k小的数
2.解析

3.设计

int Select(int a[], int start,int end,int k) {while(i <= end){//对数组进行分组int iend = i + 4;if (iend >= end) {iend = end;}quickSort(a, i, iend);s[m] = a[(i + iend) / 2];//找出每组中位数m++;i = iend+1;}quickSort(s, 0, m - 1);//对中位数进行排序int mid = s[m / 2];int al[MAX], ar[MAX];int count_al = 0, count_ar = 0;for (int j = start; j <= end; j++)//通过m*,将数组分为两部分{if (a[j]<mid){al[count_al++] = a[j];}else if (a[j] > mid){ar[count_ar++] = a[j];}}if (k==count_al+1){return mid;}else if (k<= count_al){return Select(al, 0, count_al - 1, k);}else{return Select(ar, 0, count_ar - 1, k - count_al-1);}
}

4.分析

5.源码
https://github.com/695950719/Algorithm-design/blob/main/lab6.cpp

实验6-选第K小元素相关推荐

  1. 分治法实验-寻找第k小元素

    问题描述 随机生成含有n个不同元素的数组L(n≥10000),要求找出第k小的元素(k≤n),完成下面的任务: (1)设计一个基于排序选择算法程序,编程调试正确(排序算法自己确定). (2)设计一个时 ...

  2. 分治算法 求第k小元素 O(n) O(nlog2^n)

    BFPRT算法:时间复杂度O(n)求第k小的数字(分治算法+快排) 各位小伙伴,由于本篇文章代码太过杂乱.我于 2018年12月25日 对文中介绍的算法进行了重写.点击上面的蓝色字体,可以阅读重写后的 ...

  3. 解决寻找第K小元素问题——三种不同的算法实现

    个人原创,禁止转载--Zetrue_Li 问题描述:在一个序列里找出第K小元素 以下程序基于函数 int select_kth_smallest(list q, int k) 实现 :返回向量q中第k ...

  4. Hoare选择算法 寻找第k小元素C实现 算法的“AWK脚手架和grap运行过程分析”

    现实生活中常有找"最大"."最小"及"中位数"等需求,解决这样的问题不用将整个序列排序.寻找"最大"."最小& ...

  5. 第K小元素 时间复杂度n

    参考视频bilibil fjnuzs 文章目录 一.题目分析 二.计算思路伪代码 三.Java实现 四.时间复杂度 一.题目分析 给出一个n个元素的序列,求其中的第k小元素(即序列按升序排序后的第k个 ...

  6. 求第k小元素:采用特定分治策略

    问题[描述算法问题,首选形式化方式(数学语言),其次才是非形式化方式(日常语言)]设L是n个元素的集合,从L中选取第k小的元素,其中1<=k<=n.这里的第k小元素是指,当L按从小到大排好 ...

  7. python第k序列元素查找_python查找第k小元素代码分享 -电脑资料

    复制代码代码如下: # -*- coding: utf-8 -*- from random import randint from math import ceil, floor def _parti ...

  8. 寻找中项和第k小元素c语言,分治法第k小元素poj2104.ppt

    分治法第k小元素poj2104 第六章 分 治 6.1 引言 分治法的设计思想是,将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之. 战略 算法设计技术 划分--治理- ...

  9. 二叉搜索树第k小元素

    二叉搜索树第k小元素 二叉搜索树的中序遍历是一个递增的序列(左根右) 中序遍历完整二叉搜索树,每次将遍历到的节点存入数组中去,找到第k - 1个节点返回即可 k是从下标1开始的,存到结果数组res中, ...

最新文章

  1. tensorflow keras numpy 数据 规范化、标准化、归一化
  2. 【Android 逆向】frida 框架安装 ( 设置 Python 3.7 版本 | 安装 frida 12.7.5 版本 | 安装 frida-tools 5.1.0 版本 )
  3. 联想利泰的一道做出来就给月薪7K的面试题--交通灯管理系统
  4. javafx性能_对JavaFX Mobile应用程序进行性能分析
  5. SpringMVC日期处理(二)
  6. 腾讯下载的视频怎么转换成mp4格式
  7. 小谈startup类ConfigureServices方法的作用
  8. Scheme 语言概要(上)
  9. java编程:放苹果
  10. bee run 报错 main.go:4:2: package myproject/routers is not in GOROOT (/usr/local/go/src/myproject/rout
  11. PHP.ini配置文件[中文]
  12. 20 JNI - c++层 操作 java 层对象
  13. 一段话中手机号中间四位做特殊处理
  14. ie调用java闪退_win7旗舰版系统位数不兼容导致IE浏览器频繁出现闪退怎么办
  15. 十分钟理解线性代数的本质_“线性代数的本质”整理笔记1
  16. opencv贾老师系列18——人脸识别实战2
  17. GAN 对抗生成网络代码实现
  18. sklearn.datasets中的几个函数make_moons(), make_circles(), make_classification()
  19. 各平台设备(华为、华三、思科、中兴、Linux)抓包命令
  20. 【UEFI实战】UART的初始化

热门文章

  1. 今年下半年,中日合拍的《Git游记》即将正式开机,我将...(上集)
  2. Springboot 使用thymeleaf模板layout布局
  3. 关于浮点数的json解析
  4. Theano3.3-练习之逻辑回归
  5. 关于p标签的嵌套问题
  6. How to create a site with AJAX enabled in MVC framework.
  7. 简单综合部署nagios环境
  8. 空空排错日志:OCS错误日志14501等解决办法
  9. C#.Net的常见面试试题 [转]
  10. Redis大集群扩容性能优化实践