C# 未排序数组中第 k 个最小/最大元素 (预期线性时间)

发布时间:2026/10/22 17:24:03

C# 未排序数组中第 k 个最小/最大元素 (预期线性时间) 目录例如流程图示例代码参考资料如果您喜欢此文章请收藏、点赞、评论谢谢祝您快乐每一天。未排序数组中第 k 个最小/最大元素 预期线性时间(Kth Smallest/Largest Element in Unsorted Array | Set 2 (Expected Linear Time))给定一个数组和一个小于数组大小的数 k我们需要找到数组中第 k 大的元素。已知数组中的所有元素都互不相同。建议您先阅读以下文章然后再阅读本文第k个最小元素C 第k个最小元素 C 第k个最小元素(K’th Smallest Element)-CSDN博客C# 第k个最小元素 C# 第k个最小元素(K’th Smallest Element)-CSDN博客Java 第k个最小元素 Java 第k个最小元素(K’th Smallest Element)_数组中第k小的数 java-CSDN博客Python 第k个最小元素 Python 第k个最小元素(K’th Smallest Element)_最小的 k 个数 python代码-CSDN博客JavaScript 第k个最小元素 JavaScript 第k个最小元素(K’th Smallest Element)-CSDN博客例如输入arr[] {7, 10, 4, 3, 20, 15}k 3输出7输入arr[] {7, 10, 4, 3, 20, 15}k 4输出10在上面的文章(第k个最小元素)中讨论了三种不同的解决方案。本文将讨论方法 4它主要是对上面的文章(第k个最小元素)中讨论的方法 3快速选择的扩展。流程图示例代码// C# program of above implementationusing System;class GFG{// This function returns kth smallest// element in arr[l..r] using// QuickSort based method. ASSUMPTION:// ALL ELEMENTS IN ARR[] ARE DISTINCTstatic int kthSmallest(int []arr, int l,int r, int k){// If k is smaller than number// of elements in arrayif (k 0 k r - l 1){// Partition the array around last// element and get position of pivot// element in sorted arrayint pos randomPartition(arr, l, r);// If position is same as kif (pos - l k - 1){return arr[pos];}// If position is more, recur// for left subarrayif (pos - l k - 1){return kthSmallest(arr, l, pos - 1, k);}// Else recur for right subarrayreturn kthSmallest(arr, pos 1, r,k - pos l - 1);}// If k is more than number of// elements in arrayreturn int.MaxValue;}static void swap(int[] arr, int i, int j){int temp arr[i];arr[i] arr[j];arr[j] temp;}// Standard partition process of QuickSort().// It considers the last element as pivot and// oves all smaller element to left of it// and greater elements to rightstatic int partition(int []arr, int l, int r){int x arr[r], i l;for (int j l; j r - 1; j){if (arr[j] x){swap(arr, i, j);i;}}swap(arr, i, r);return i;}static int randomPartition(int []arr, int l, int r){int n r - l 1;int pivot new Random().Next(1);swap(arr, l pivot, r);return partition(arr, l, r);}// Driver Codepublic static void Main(){int []arr {12, 3, 5, 7, 4, 19, 26};int n arr.Length, k 3;Console.WriteLine(Kth smallest element is kthSmallest(arr, 0, n - 1, k));}}// this code is contributed by 29AjayKumar输出Kth smallest element is 5时间复杂度 O(N * log N)。辅助空间 O(1)。参考资料C 第k个最小元素 C 第k个最小元素(K’th Smallest Element)-CSDN博客C# 第k个最小元素 C# 第k个最小元素(K’th Smallest Element)-CSDN博客Java 第k个最小元素 Java 第k个最小元素(K’th Smallest Element)_数组中第k小的数 java-CSDN博客Python 第k个最小元素 Python 第k个最小元素(K’th Smallest Element)_最小的 k 个数 python代码-CSDN博客JavaScript 第k个最小元素 JavaScript 第k个最小元素(K’th Smallest Element)-CSDN博客如果您喜欢此文章请收藏、点赞、评论谢谢祝您快乐每一天。
延伸阅读

更多相关文章

2026/10/22 17:24:03

播客App推荐:通勤与洗碗时间,别再浪费在刷短视频上

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/22 17:24:03

翻译工具合集:DeepL、Google 翻译、有道与沉浸式翻译扩展

Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列Scratch编程案例软考全系列Unity3D学习专栏蓝桥系列AIGC(GPT、DeepSeek、豆包、千问、Kimi) 👉关于作者 专注于Android/Unity和各种游戏开发技巧&a…

2026/10/22 17:24:03

快速启动器推荐:PowerToys Run、Wox/Everything、Alfred 思路与 Listary

Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列Scratch编程案例软考全系列Unity3D学习专栏蓝桥系列AIGC(GPT、DeepSeek、豆包、千问、Kimi) 👉关于作者 专注于Android/Unity和各种游戏开发技巧&a…

2026/10/22 18:29:22

VBA调用Shell实战:打通Office与操作系统的自动化桥梁

1. 为什么VBA需要碰Shell:办公自动化里那些"纯VBA搞不定"的事说实话,很多人学VBA是为了处理Excel表格、批量整理数据,最初压根没想过要碰Shell。但做自动化做到一定深度,你迟早会遇到这么一类需求:光靠VBA的…

2026/10/22 18:29:22

MachineY Engine:两分钟在Windows上搭建AI Agent运行环境

看到这个标题我第一反应是,Windows上跑AI Agent,很多人的印象还停留在“配环境两小时,跑通五分钟”的阶段。Python版本冲突、依赖地狱、模型下载卡住,每个坑都能劝退一批人。MachineY Engine这个开源项目就是冲着这个痛点来的&…

2026/10/22 18:29:22

微信小程序+云开发:校园二手交易平台源码设计与实战

简介:这一份基于微信小程序的校园二手物品交易平台设计源码,面向需要完成毕业设计、课程项目或小程序开发练手的计算机专业学生与开发者。系统采用Java与JavaScript技术栈,结合微信小程序前端、HTML/CSS以及SQL数据库,完整覆盖用户…

2026/10/22 18:29:22

AI驱动商业智能落地指南:从数据治理到决策闭环

先说一个我观察到的现象:很多团队把AI和BI放在一起谈,最后做出来的东西既不是AI,也不算BI,只是一个用大模型套了一层壳的旧报表系统。我参与过几个数据基础还不错的企业项目,也旁观过一些从零开始搭的团队,…

2026/10/22 18:29:22

专科生降AIGC实测:10个工具让AI辅助写作更像自己写的

前几天一个专科在读的学弟发了一篇结课报告给我,说是自己写的。我只扫了一眼开头三段就笑了——“首先需要明确的是……其次……综上所述……”这种整齐划一到极点的排比,再加上满屏“赋能”“闭环”“抓手”,根本不需要任何检测系统&#xf…

2026/10/22 18:24:18

BP神经网络用于用电量预测的工程落地实践

简介:本资源是一份面向机器学习初学者与电力系统数据分析实践者的BP神经网络用电量预测完整实现方案,聚焦非线性时序预测这一典型工程问题,适用于课程设计、毕业设计及能源领域轻量级建模需求。压缩包仅2个文件(11KB)&…

2026/10/22 11:29:28

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/22 0:01:49

电商智能运营体系从0到1:架构设计、落地步骤与避坑指南

前两年我们团队接了一个电商平台的运营中台项目,目标很直白:把过去靠运营拍脑袋做的选品、定价、发券、推活动这些事,逐步用数据算法和自动化流程代替。项目名字内部就叫“电商智能运营体系”。最近有不少朋友问我当时是怎么设计的、踩过哪些…

2026/10/22 0:01:49

若依框架AI代码生成不稳定?用Agent Skill三层结构+五步法搞定

最近一段时间,我一直想把后台管理系统里那些机械重复的增删改查代码交给AI去写。框架用的是若依,按理说这类业务代码模式非常固定,应该是AI最擅长的事情。可真试下来却不是那么回事——你让AI生成一个用户管理模块,它给出的Contro…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑