首页 > 其他分享 >quick_sort ——第k个数

quick_sort ——第k个数

时间:2024-04-18 14:23:29浏览次数:18  
标签:sort int 个数 数组 quick 排序

思路:本题就是一个快速排序的模板题,通过对数组中的数字进行从小到大排序,从左到右第k个数,但得注意数组下标是从0开始,所以答案应该是排序后数组下标为k-1

如果您还不了解快速排序,请移步这篇文章,https://www.cnblogs.com/expect-999/p/17594345.html

#include <iostream>
#include <algorithm>

using namespace std;

const int N = 1e5+10;

int n,k;
int q[N];

void quick_sort(int q[],int l,int r)
{
    if(l>=r) return;
    
    int i=l-1,j=r+1;
    int x = q[ (l+r) >> 1];
    
    while(i<j)
    {
        do ++i; while(q[i]<x);
        do --j; while(q[j]>x);
        if(i<j) swap(q[i],q[j]);
    }
    
    quick_sort(q,l,j);
    quick_sort(q,j+1,r);
    
}

signed main()
{
    cin >> n >> k;
    
    for(int i=0;i<n;++i) cin >> q[i];
    
    quick_sort(q,0,n-1);
    
    cout << q[k-1];
    
    return 0;
}

本人蒟蒻,如有错误或者不当的地方还望指点,如果对您有所帮助,请给我点赞,这真的对我很重要,感谢观看我的博客

标签:sort,int,个数,数组,quick,排序
From: https://www.cnblogs.com/expect-999/p/18143416

相关文章

  • 轮播一屏多个数量-匀速向左移动
    引入swiper1.html<divclass="inw-swipper">            <divclass="swiper-container">              <divclass="swiper-wrapper">                <divclass=&......
  • 【转】关于微信公众号-网页授权域名,域名配置个数不够用的情况梳理
    原文:https://blog.csdn.net/weixin_44050791/article/details/132095710关于微信公众号-网页授权域名,域名配置个数不够用的情况梳理1.网页授权机制如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑2.去微信后台配置......
  • element表格自带sortable属性排序错乱问题
       参考:https://blog.csdn.net/qq_40004867/article/details/129835446?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-129835446-blog-126339196.235%5Ev43%5Epc_blog_bottom_relevance_base4&dept......
  • mybatis怎么实现insert into多个数据-oracle数据库
    第一种<insertid="insertBatch"> INSERTALL <foreachcollection="list"item="user"separator=""close="SELECT*FROMdual"index="index"> INTOLY_TEST(id,name,age)VALUES(#{user......
  • TopoSort Review
    表达式树的优化AOV网ActivityonVertexNetwork网基于定点的行动网络。求解顺序就是拓扑排序。拓扑排序有多种。拓扑排序分层,可以分成很多同一地位的层,有一定的组合意义。计算拓扑序方案数。队列算法。反过来,还有拓扑逆序。用栈也可以。AOE网基于边,带权。车站分级Di......
  • Queue Sort
    原题链接题解1.最小数在操作之前是第一位,操作之后也必然是第一位,这就导致了如果原数组最小数后的数遍历不到,如果非有序就真的没法有序了,否则每个数都刚好大于前面一个数一定有序code#include<bits/stdc++.h>usingnamespacestd;inta[200005]={0};intmins=2e9,index;int......
  • Java stream sorted使用 Comparator 进行多字段排序
    摘要:介绍使用JavaStream流排序器Comparator对List集合进行多字段排序的方法,包括复杂实体对象多字段升降序混合排序方法。综述​ Java8的Stream使用了函数式编程模式,人如其名,它可以被用来对集合或数组进行链状流式的排序、过滤和统计等操作,从而让我们更方便的对集合或数组......
  • Java中Array.sort()的几种用法简明教程 (需要初始化要排序的对象)对 一个数组的所有元素
    Java中Array.sort()的几种用法简明教程(需要初始化要排序的对象)对一个数组的所有元素进行排序,并且是按从小到大的顺序Java中Array.sort()的几种用法简明教程(需要初始化要排序的对象)======================================================1、Arrays.sort(int[]a)......
  • 6-1 使用函数输出指定范围内Fibonacci数的个数
    本题要求实现一个计算Fibonacci数的简单函数,并利用其实现另一个函数,输出两正整数m和n(0<m<n≤100000)之间的所有Fibonacci数的数目。所谓Fibonacci数列就是满足任一项数字是前两项的和(最开始两项均定义为1)的数列,fib(0)=fib(1)=1。其中函数fib(n)须返回第n项Fibonacci数;函数Prin......
  • leedcode-两个数组的交集
    自己写的:fromtypingimportList#导入List类型,用于函数参数和返回类型的注解classSolution:defintersection(self,nums1:List[int],nums2:List[int])->List[int]:#初始化一个空列表,用于存储两个列表的交集mylist=[]#遍历num......