V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zhengfan2016
V2EX  ›  PHP

大佬们, PHP 除了遍历以外,怎么用算法比较快的输出符合一个已经排序好的符合一个范围内的数组

  •  
  •   zhengfan2016 · 2021-09-16 15:39:21 +08:00 · 1987 次点击
    这是一个创建于 1162 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题,萌新全干实习生。有一个查询功能,可以选择筛选一个符合从(m,n)范围的数据。
    然后这个数据是需要对数据库取出的几万条数据进行一个实时遍历运算,然后再排序,最后需要筛一个符合( m,n )的范围。

    萌新目前想到的就是用循环 二分法来找,不知道 v2 的大佬们有没有更好的方案

    11 条回复    2021-09-25 15:06:46 +08:00
    xupefei
        1
    xupefei  
       2021-09-16 15:56:46 +08:00 via iPhone
    文不对题,到底要不要排序
    JKeita
        2
    JKeita  
       2021-09-16 16:19:01 +08:00   ❤️ 1
    先筛选再排序?
    dqzcwxb
        3
    dqzcwxb  
       2021-09-16 16:20:26 +08:00
    如果是 java 的话可以用 TreeMap ConcurrentSkipListMap 实现
    acr0ss
        4
    acr0ss  
       2021-09-16 16:21:39 +08:00   ❤️ 1
    既然已经有实时遍历运算,再次基础上过滤 (m, n) 范围不行吗?还能减少排序的数据量。
    pray123
        5
    pray123  
       2021-09-16 16:29:47 +08:00   ❤️ 1
    数据符合范围再插入排序?
    lybcyd
        6
    lybcyd  
       2021-09-16 16:37:58 +08:00
    直接使用 SQL 不行吗?这个需求数据库直接就可以解决吧,何必写代码
    zhengfan2016
        7
    zhengfan2016  
    OP
       2021-09-16 16:57:26 +08:00
    @JKeita #2
    @acr0ss #4 感谢,已解决
    @pray123 #5
    zhengfan2016
        8
    zhengfan2016  
    OP
       2021-09-16 16:58:03 +08:00
    @lybcyd #6 不太会写触发器😂
    zhengfan2016
        9
    zhengfan2016  
    OP
       2021-09-16 17:04:21 +08:00
    @xupefei #1 要的,不仅要筛,还要排😂
    wanzi2019
        10
    wanzi2019  
       2021-09-16 18:25:27 +08:00
    听君一席话,如听一席话
    512357301
        11
    512357301  
       2021-09-25 15:06:46 +08:00 via Android
    这是 SQL 就能搞定的,而且数据库效率更高,不是触发器哦
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2869 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 14:50 · PVG 22:50 · LAX 06:50 · JFK 09:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.