第k小的元素
利用快排思想,如果标志位大于k,则第k小的数字在左边,否则在右边。(程序是第k大的元素)
#include <iostream>
#include <vector>
using namespace std; //求向量中第k大的数字,从大到小进行排列 int q_sort(vector<int> &v, int low, int high)
{
int tmp = v[low]; while (low < high)
{
while (low<high && v[high] <= tmp)
--high;
v[low] = v[high]; while (low<high && v[low] >= tmp)
++low;
v[high] = v[low];
}
v[low] = tmp;
cout << low << endl;
for (auto &i : v)
cout << i << " ";
cout << endl;
return low;
}
int k_max(vector<int> &v, int low, int high,int k)
{
if (low >= high)
return v[low];
else
{
int mid = q_sort(v, low, high);
if (mid>k)
k_max(v, low, mid - ,k);
else if (mid < k)
k_max(v, mid + , high,k);
else
return v[mid];
} } int main()
{
vector<int> v = { , , , , , , , , , , };
int len = v.size();
int k_num=k_max(v, , len - , -); //此处为k-1,从大到小的排列,下标为k-1的数。
cout << k_num << endl;
return ;
}
第k小的元素的更多相关文章
- [LeetCode] Kth Smallest Element in a Sorted Matrix 有序矩阵中第K小的元素
Given a n x n matrix where each of the rows and columns are sorted in ascending order, find the kth ...
- [LeetCode] Kth Smallest Element in a BST 二叉搜索树中的第K小的元素
Given a binary search tree, write a function kthSmallest to find the kth smallest element in it. Not ...
- 树状数组求第k小的元素
int find_kth(int k) { int ans = 0,cnt = 0; for (int i = 20;i >= 0;i--) //这里的20适当的取值,与MAX_VAL有关,一般 ...
- 查找第k小的元素(O(n)递归解法)
今天分享一个小技巧,虽然是小技巧但是还是很有价值的,曾经是微软的面试题.题目是这样的,一个无序的数组让你找出第k小的元素,我当时看到这道题的时候也像很多人一样都是按普通的思维,先排序在去第K个,但是当 ...
- 求第k小的元素
用快排解决: 用快排,一趟排序后,根据基准值来缩小问题规模.基准值的下角标i 加1 表示了基准值在数组中第几小.如果k<i+1,那就在左半边找:如果k>i+1那就在右半边找.当基准值的下角 ...
- [Swift]LeetCode378. 有序矩阵中第K小的元素 | Kth Smallest Element in a Sorted Matrix
Given a n x n matrix where each of the rows and columns are sorted in ascending order, find the kth ...
- 230. 二叉搜索树中第K小的元素
230. 二叉搜索树中第K小的元素 题意 给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素. 你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数. ...
- leetcode 二叉搜索树中第K小的元素 python
二叉搜索树中第K小的元素 给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素. 说明:你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元 ...
- [leetcode] 230. Kth Smallest Element in a BST 找出二叉搜索树中的第k小的元素
题目大意 https://leetcode.com/problems/kth-smallest-element-in-a-bst/description/ 230. Kth Smallest Elem ...
- 230. Kth Smallest Element in a BST 找到bst中的第k小的元素
[抄题]: Given a binary search tree, write a function kthSmallest to find the kth smallest element in i ...
随机推荐
- react native 安卓home返回键页面刷新
import { withNavigationFocus } from 'react-navigation'; class Warngreete extends React.Component { c ...
- logging 简单使用
import logging logging.basicConfig( level=logging.DEBUG, format='[%(asctime)s <%(filename)s :%(li ...
- MATLAB cftool工具数据拟合结果好坏判断
SSE和RMSE比较小 拟合度R接近于1较好 * 统计参数模型的拟合优度 1.误差平方和(SSE) 2. R-Square(复相关系数或复测定系数) 3. Adjusted R-Square(调整自由 ...
- MySQL学习11 - MySQL创建用户和授权
权限管理 权限管理 我们知道我们的最高权限管理者是root用户,它拥有着最高的权限操作.包括select.update.delete.update.grant等操作.那么一般情况在公司之后DBA工程师 ...
- AQS学习笔记之独占锁
作用 参与 共享锁 acquireShared() 和 独占锁 acquire() 的抢锁逻辑, 具体的抢锁逻辑不作实现,只对第一次抢锁未抢到锁线程做处理,第一次抢锁就抢到的线程就不需要遇到AQS了 ...
- Tree Cutting POJ - 2378 (树形DP)
题目链接:POJ - 2378 题目大意:给你n个点,然后问你这n个点中 ,去除哪些点能够使得剩下的图中最大的连通块中点的个数不超过n/2. 具体思路:第一遍dfs记录每一个点代表的子树大小,第二遍d ...
- sql的四种匹配模式
1. % 表示任意0个或多个字符.如下语句:Select * FROM user Where name LIKE '%三%'; 将会把name为“张三”,“三脚猫”,“唐三藏”等等有“三”的全找出来. ...
- 51nod 2523
len=0 break len=1,f=0,ans++,保留前一行的v数组,即len不变:f=1,重新确定下一列中需要判哪一行(标记法),跟新v数组 这题思路很清晰,但是写代码的时候弄错好几个变量,列 ...
- JVM虚拟机和垃圾回收算法
类加载机制 双亲委派模型 垃圾回收算法 CMS G1 类加载机制 双亲委派模型 双亲委派模型: 需要加载一个类,先委托父类加载,父类找父类,依次递归加载;加载不到再由自己加载 垃圾回收算法 JVM的内 ...
- quart-process_bar
import asyncio import random import aioredis import redis from quart import Quart, request, url_for, ...