实验6-选第K小元素
实验报告
课程名称 《算法分析与设计》 实验日期 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小元素相关推荐
- 分治法实验-寻找第k小元素
问题描述 随机生成含有n个不同元素的数组L(n≥10000),要求找出第k小的元素(k≤n),完成下面的任务: (1)设计一个基于排序选择算法程序,编程调试正确(排序算法自己确定). (2)设计一个时 ...
- 分治算法 求第k小元素 O(n) O(nlog2^n)
BFPRT算法:时间复杂度O(n)求第k小的数字(分治算法+快排) 各位小伙伴,由于本篇文章代码太过杂乱.我于 2018年12月25日 对文中介绍的算法进行了重写.点击上面的蓝色字体,可以阅读重写后的 ...
- 解决寻找第K小元素问题——三种不同的算法实现
个人原创,禁止转载--Zetrue_Li 问题描述:在一个序列里找出第K小元素 以下程序基于函数 int select_kth_smallest(list q, int k) 实现 :返回向量q中第k ...
- Hoare选择算法 寻找第k小元素C实现 算法的“AWK脚手架和grap运行过程分析”
现实生活中常有找"最大"."最小"及"中位数"等需求,解决这样的问题不用将整个序列排序.寻找"最大"."最小& ...
- 第K小元素 时间复杂度n
参考视频bilibil fjnuzs 文章目录 一.题目分析 二.计算思路伪代码 三.Java实现 四.时间复杂度 一.题目分析 给出一个n个元素的序列,求其中的第k小元素(即序列按升序排序后的第k个 ...
- 求第k小元素:采用特定分治策略
问题[描述算法问题,首选形式化方式(数学语言),其次才是非形式化方式(日常语言)]设L是n个元素的集合,从L中选取第k小的元素,其中1<=k<=n.这里的第k小元素是指,当L按从小到大排好 ...
- python第k序列元素查找_python查找第k小元素代码分享 -电脑资料
复制代码代码如下: # -*- coding: utf-8 -*- from random import randint from math import ceil, floor def _parti ...
- 寻找中项和第k小元素c语言,分治法第k小元素poj2104.ppt
分治法第k小元素poj2104 第六章 分 治 6.1 引言 分治法的设计思想是,将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之. 战略 算法设计技术 划分--治理- ...
- 二叉搜索树第k小元素
二叉搜索树第k小元素 二叉搜索树的中序遍历是一个递增的序列(左根右) 中序遍历完整二叉搜索树,每次将遍历到的节点存入数组中去,找到第k - 1个节点返回即可 k是从下标1开始的,存到结果数组res中, ...
最新文章
- tensorflow keras numpy 数据 规范化、标准化、归一化
- 【Android 逆向】frida 框架安装 ( 设置 Python 3.7 版本 | 安装 frida 12.7.5 版本 | 安装 frida-tools 5.1.0 版本 )
- 联想利泰的一道做出来就给月薪7K的面试题--交通灯管理系统
- javafx性能_对JavaFX Mobile应用程序进行性能分析
- SpringMVC日期处理(二)
- 腾讯下载的视频怎么转换成mp4格式
- 小谈startup类ConfigureServices方法的作用
- Scheme 语言概要(上)
- java编程:放苹果
- bee run 报错 main.go:4:2: package myproject/routers is not in GOROOT (/usr/local/go/src/myproject/rout
- PHP.ini配置文件[中文]
- 20 JNI - c++层 操作 java 层对象
- 一段话中手机号中间四位做特殊处理
- ie调用java闪退_win7旗舰版系统位数不兼容导致IE浏览器频繁出现闪退怎么办
- 十分钟理解线性代数的本质_“线性代数的本质”整理笔记1
- opencv贾老师系列18——人脸识别实战2
- GAN 对抗生成网络代码实现
- sklearn.datasets中的几个函数make_moons(), make_circles(), make_classification()
- 各平台设备(华为、华三、思科、中兴、Linux)抓包命令
- 【UEFI实战】UART的初始化