当前位置:首页>Excel>用影刀RPA和Excel表格做一个冒泡排序动画

用影刀RPA和Excel表格做一个冒泡排序动画

  • 2026-04-15 14:14:46
用影刀RPA和Excel表格做一个冒泡排序动画

楔子

大家好,我是张桃狮。

最近我看了B站视频——【【人工智能】冒泡排序算法,3分钟彻底搞懂算法可视化!草履虫都能听懂的冒泡排序,要是还听不懂,我就退出AI圈!(附全套AI资料)】

https://www.bilibili.com/video/BV134iMBeEZs/

视频中up主把冒泡算法的计算过程做成了很棒的动画。

我不清楚up主是用什么软件制作的动画,我打算用自己最熟悉的影刀RPA和Excel表格做一个类似的。

先回顾下什么是冒泡算法。

冒泡排序(Bubble Sort)是一种简单直观的交换类排序算法,其核心思想是:重复地走访过要排序的数列,一次比较两个相邻的元素,如果它们的顺序错误就把它们交换过来。

这个算法的名字由来很形象:每一轮遍历都会将当前未排序部分中最大(或最小)的元素逐步 “浮” 到数列的末尾,就像水中的气泡向上浮动一样,因此得名冒泡排序。

参考代码是豆包给出的,大家一看就明白。

def bubble_sort(arr):    # 复制输入数组,避免修改原数组(可选优化,提升代码健壮性)    arr_copy = arr.copy()    n = len(arr_copy)    # 外层循环:控制排序的轮次,最多需要n-1轮(每轮确定一个最大元素)    for i in range(n - 1):        # 内层循环:遍历未排序部分,进行相邻元素比较交换        # 每完成一轮,未排序部分长度减少i(末尾i个元素已有序)        for j in range(n - 1 - i):            # 升序排序:前一个元素大于后一个,交换位置            if arr_copy[j] > arr_copy[j + 1]:                arr_copy[j], arr_copy[j + 1] = arr_copy[j + 1], arr_copy[j]    return arr_copy# 测试示例test_arr = [64, 34, 25, 12, 22, 11, 90]sorted_arr = bubble_sort(test_arr)print("原始数组:", test_arr)print("排序后数组:", sorted_arr)

我的思路是先用影刀生成一个随机列表。

将列表写入Excel表格。

用冒泡算法对列表进行排序。

相邻元素每次交换都会被重新写入Excel表格。

为了产生动画效果,我需要将Excel表格数据图形化。

我打算通过Excel表格的条件格式-数据条或者色阶来实现。

用到的影刀RPA指令如图。

条件格式-数据条动画效果如下。

条件格式-色阶动画效果如下。

与python代码不同的是,影刀的for次数循环是包含结束数的。

所以python代码中的列表长度-1,在影刀中要改为列表长度-2。

为了能看清楚动画,我在每次写入Excel表格后,增加了0.1秒等待时间。

在影刀中交换两个变量的值需要用到临时变量,还是python方便啊。

闲话讲完,咱们继续力扣刷题。

力扣190. 颠倒二进制位

颠倒给定的 32 位有符号整数的二进制位。示例 1:输入:n = 43261596输出:964176192解释:整数 二进制43261596 00000010100101000001111010011100964176192 00111001011110000010100101000000示例 2:输入:n = 2147483644输出:1073741822解释:整数 二进制2147483644 011111111111111111111111111111001073741822 00111111111111111111111111111110提示:0 <= n <= 231 - 2n 为偶数进阶: 如果多次调用这个函数,你将如何优化你的算法?

我的思路

我知道python有二进制转换函数,但是我打算先自己手搓。

先用n除以2取余数,将n从十进制转为二进制数。

不足32位的在二进制数前面补零。

因为n为偶数,二进制数的尾数肯定是0,颠倒后的二进制数不用考虑负数问题。

将二进制数转为十进制数。

class Solution:    def reverseBits(self, n: int) -> int:        二进制文本=""        while n>0:            二进制文本=str(n%2)+二进制文本            n=int(n/2)        需要补零的数量=32-len(二进制文本)        二进制文本="0"*需要补零的数量+二进制文本        res=0        m=31        for i in 二进制文本[::-1]:            res += int(i)*(2**m)            m -= 1        return res

力扣提交通过。

把手搓都改成python内置函数。

class Solution:    def reverseBits(self, n: int) -> int:        n=bin(n)[2:].zfill(32)        n=int(str(n)[::-1],2)        return n

代码看起来简洁了很多。

力扣提交通过。

力扣官方题解

方法一:逐位颠倒

力扣的官方代码没有python题解,我把C++的题解发给豆包,让豆包转为python代码,并增加了详细的注释。

class Solution:    def reverseBits(self, n: int) -> int:        # 1. 初始化反转结果变量rev,初始值为0(对应C++的uint32_t rev = 0)        # 用于存储逐位反转后的32位无符号整数结果        rev = 0        # 2. 循环32次(对应32位整数),同时保留原C++代码的n>0判断(可提前终止无效循环,优化效率)        # i:循环计数器,标记当前处理的是第i位(从0开始,对应从最低位到最高位)        for i in range(32):            # 提前终止条件:如果n已经变为0,后续位都是0,反转后仍为0,无需继续循环            if n <= 0:                break            # 3. 提取n的最低位(对应C++的n & 1)            # n & 1:按位与运算,只有n的最低位为1时结果为1,否则为0,精准提取最低位            lowest_bit = n & 1            # 4. 将提取的最低位移到反转后的对应高位(对应C++的(n & 1) << (31 - i))            # 31 - i:原数的第i位(从低到高),反转后应位于第31 - i位(从高到低)            # 例如:原数最低位(i=0),反转后应位于最高位(31-0=31位)            shifted_bit = lowest_bit << (31 - i)            # 5. 将移位后的位合并到结果rev中(对应C++的rev |= ...)            # 按位或运算:保留rev中已有的有效位,同时将新的移位后的位写入对应位置            rev |= shifted_bit            # 6. n右移1位,丢弃已处理的最低位,准备处理下一位(对应C++的n >>= 1)            # 这里使用无符号右移效果等价(Python中>>对于正数是算术右移,与无符号右移一致)            n >>= 1        # 7. 关键:保证返回结果是32位无符号整数(模拟C++的uint32_t返回值)        # & 0xFFFFFFFF:将结果限制在32位无符号整数范围内,避免Python整数的无限精度带来的干扰        return rev & 0xFFFFFFFF

力扣提交通过。

我就知道这道题没那么简单,原来用了位运算。

位运算中的按位与&和按位或|,在这个代码中频繁使用,所以一定要明白他们的用法。

我的理解是,按位与和按位或分别代表了两种电路逻辑——串联和并联。

把两个开关串联在一起,就是按位与。

把两个开关并联在一起,就是按位或。

注意这里的位运算优先级是,先计算左移右移,然后是按位与,最后是按位或。

如果要调整计算优先级,需要加小括号,小括号里的位运算优先级最高。

返回结果中的0xFFFFFFFF是16进制的最大值,在这道题中其实加不加都行。

之所以用16进制,是因为二进制太长了。

0xFFFFFFFF转为二进制就是0b11111111111111111111111111111111。

也可以写成0b1111_1111_1111_1111_1111_1111_1111_1111。

方法二:位运算分治

同样是用豆包转的python代码。

class Solution:    # 定义类常量,对应C++中的私有常量掩码(与原代码完全一致)    # 掩码作用:按固定间隔提取二进制位,用于分治交换    M1 = 0x55555555  # 01010101 01010101 01010101 01010101    M2 = 0x33333333  # 00110011 00110011 00110011 00110011    M4 = 0x0f0f0f0f  # 00001111 00001111 00001111 00001111    M8 = 0x00ff00ff  # 00000000 11111111 00000000 11111111    def reverseBits(self, n: int) -> int:        # 第一步:交换相邻的1个比特位        n = (n >> 1) & self.M1 | (n & self.M1) << 1        # 第二步:交换相邻的2个比特位        n = (n >> 2) & self.M2 | (n & self.M2) << 2        # 第三步:交换相邻的4个比特位        n = (n >> 4) & self.M4 | (n & self.M4) << 4        # 第四步:交换相邻的8个比特位        n = (n >> 8) & self.M8 | (n & self.M8) << 8        # 第五步:交换高低16个比特位,完成32位整体反转        n = (n >> 16) | (n << 16)        # 关键:限制结果为32位无符号整数,模拟C++的uint32_t返回值        return n & 0xFFFFFFFF

方法一虽然用了位运算,但是还可以进一步优化。

循环处理尾数并左移,需要32次计算。

方法二用了二分法,只需要5次计算就可以搞定。

我忽然想到排序算法是不是也可以用二分法,我听说Python自带的排序函数好像就用了类似方法,有时间可以研究一下。

注意这里的& 0xFFFFFFFF不能省略,因为代码中的最后一个位运算会导致n超过32位。

为了学习位运算,我打算参考这个代码,写一个4位二进制数的颠倒函数。

方法一

class Solution:    M1 = 0b0101    def reverseBits(self, n: int) -> int:        n = (n >> 1) & self.M1 | (n & self.M1) << 1        n = (n >> 2) | (n << 2)        return n & 0b1111n=6solution=Solution()print(solution.reverseBits(n))

打印结果还是6,测试通过。

6的二进制是0110,颠倒过来还是0110。

方法二

class Solution:    M1 = 0b0101    M2 = 0b0011    def reverseBits(self, n: int) -> int:        n = (n >> 1) & self.M1 | (n & self.M1) << 1        n = (n >> 2) & self.M2 | (n & self.M2) << 2        return nn=6solution=Solution()print(solution.reverseBits(n))

打印结果还是6,测试通过。

学习位运算就是为了告诉我们,不管输入的数字是十进制、八进制还是十六进制,CPU都会转化为二进制做位运算,最后输出的结果会默认从二进制转化为十进制。

位运算是通过硬件逻辑电路实现的,熟练掌握位运算不但可以优化算法,还可以更加了解计算机的底层原理。

后记

我曾经在Excel中做过一个贪吃蛇小游戏。

感兴趣的朋友可以翻看一下前几期的公众号内容,我懒得贴链接了。

当时我想用deque代替列表存放贪吃蛇的身体节点,结果发现影刀不支持deque只好作罢。

我忽然想起列表中的每个节点其实可以用元组来实现。

这些节点用来存放贪吃蛇的身体坐标,每个节点的行号和列号是不变的。

用列表来存放每个节点的坐标值着实有点浪费内存了。

修改起来也非常简单,我只需要将存放坐标值的中括号修改为小括号就完事了。

影刀测试通过。

我是个编程爱好者,小白级别的,如果你跟我一样希望通过力扣刷题,学习各种奇妙的算法,可以关注我,大家一起学习。 

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-04-24 19:55:58 HTTP/2.0 GET : https://h.sjds.net/a/458608.html
  2. 运行时间 : 0.112057s [ 吞吐率:8.92req/s ] 内存消耗:4,390.52kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=ad90951a97b573798a05ca79fd420557
  1. /yingpanguazai/ssd/ssd1/www/h.sjds.net/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/h.sjds.net/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/h.sjds.net/runtime/temp/ad153693ed39fba6d1bda2fe72512cde.php ( 12.06 KB )
  140. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000453s ] mysql:host=127.0.0.1;port=3306;dbname=h_sjds;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000858s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000381s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000307s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000516s ]
  6. SELECT * FROM `set` [ RunTime:0.000227s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000624s ]
  8. SELECT * FROM `article` WHERE `id` = 458608 LIMIT 1 [ RunTime:0.000502s ]
  9. UPDATE `article` SET `lasttime` = 1777031758 WHERE `id` = 458608 [ RunTime:0.004390s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 65 LIMIT 1 [ RunTime:0.001380s ]
  11. SELECT * FROM `article` WHERE `id` < 458608 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001374s ]
  12. SELECT * FROM `article` WHERE `id` > 458608 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000492s ]
  13. SELECT * FROM `article` WHERE `id` < 458608 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.008548s ]
  14. SELECT * FROM `article` WHERE `id` < 458608 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.017730s ]
  15. SELECT * FROM `article` WHERE `id` < 458608 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.001963s ]
0.113750s