网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
07月24日漏签0天
c语言吧 关注:798,846贴子:4,357,457
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 1 2 下一页 尾页
  • 35回复贴,共2页
  • ,跳到 页  
<<返回c语言吧
>0< 加载中...

快速排序超时

  • 只看楼主
  • 收藏

  • 回复
  • 玥影枫桥缘
  • 低能力者
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
新手写了一个快排,但是acwing输入十万个相同数的时候会超时,怎么样规避这个超时呢


  • 玥影枫桥缘
  • 低能力者
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
新手轻喷


2025-07-24 14:06:13
广告
不感兴趣
开通SVIP免广告
  • 玥影枫桥缘
  • 低能力者
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
顶


  • c是世界最好的语言
  • 大能力者
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
是不是可以先检查是不是已经有序了。虽然感觉有点可能会导致平常情况变慢。


  • GTA小鸡
  • 吧主
    14
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
先把题目发出来


  • 玥影枫桥缘
  • 低能力者
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼


  • c是世界最好的语言
  • 大能力者
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
你知道为什么你那么慢吗,因为你相同的数列表经过onesort分割后的哨兵值就是第一个元素,也就是你10万个元素就要做10万次onesort。


  • c是世界最好的语言
  • 大能力者
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
为什么quicksort快就是因为他大部分时候能把数组分割成两部分,然后时间复杂度为可以NlogN。你的onesort是首元素哨兵法,那么对于有序数组只能分割成(0,0)和(1,N)两个数组,最坏情况是logN2。要么你换一种onesort方法比如选取随机值哨兵,要么在排序前先检测一下是否已经数组已经排好。


2025-07-24 14:00:13
广告
不感兴趣
开通SVIP免广告
  • GTA小鸡
  • 吧主
    14
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
尝试优化一下
1.数组改成全局变量,避免分配
2.在onesort函数后面加__attribute__((always_inline))
3.pivot选择median of three


  • c是世界最好的语言
  • 大能力者
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
最笨的方法是在quicksort函数里加一个检查是否数组有序的判断


  • microroom
  • 帕秋莉糕
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
1、解决区间所有数都相同的情况
每次onesort找出区间的最小最大值,如果它们相等返回-1表示不需要排序了
2、解决区间已经有序(升或降)
left、mid、right三数取中做枢纽


  • 遂逸
  • 帕秋莉糕
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
快速排序在最坏情况下的时间复杂度是(n^2). 当序列已经是有序时,就是这种情况。
若大部分数据有序时,情况也一样。


  • 遂逸
  • 帕秋莉糕
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
按照前面吧友提的建议,修改程序如下。这个应该能通过


  • 知识浅薄
  • 路人
    2
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
三数取中,子函数取最左边最右边和中间的数返回中间数,然后用中间数做key
三路划分,将跟key相等的数放到中间。begin指向最左边,end指向最右边,cur从begin+1位置开始遍历,cur比end大时结束。当cur遇小时,跟begin交换,begin++,cur++。遇大时跟end交换,end++。再递归左区间letf,begin-1,右区间end+1,right


2025-07-24 13:54:13
广告
不感兴趣
开通SVIP免广告
  • 浮光若梦
  • 异能力者
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
哨兵的问题,最坏情况会退化到O(n^2)


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 1 2 下一页 尾页
  • 35回复贴,共2页
  • ,跳到 页  
<<返回c语言吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示