鱼C论坛

 找回密码
 立即注册
查看: 3014|回复: 18

[技术交流] Python中各种排序方法

[复制链接]
发表于 2023-4-29 10:43:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 陶远航 于 2023-7-29 13:12 编辑

Python中各种排序方法

  1. import time
  2. import random
  3. from typing import List

  4. #冒泡排序
  5. def bubble_sort(arr):
  6.     n = len(arr)
  7.     for i in range(n):
  8.         for j in range(0, n-i-1):
  9.             if arr[j] > arr[j+1] :
  10.                 arr[j], arr[j+1] = arr[j+1], arr[j]
  11.     return arr

  12. #快速排序
  13. def quick_sort(arr):
  14.     if len(arr) <= 1:
  15.         return arr
  16.     pivot = arr[len(arr) // 2]
  17.     left = [x for x in arr if x < pivot]
  18.     middle = [x for x in arr if x == pivot]
  19.     right = [x for x in arr if x > pivot]
  20.     return quick_sort(left) + middle + quick_sort(right)

  21. #radix sort
  22. def radix_sort(arr:List[int]):
  23.     n = len(str(max(arr)))
  24.     for k in range(n):
  25.         bucket_list=[[] for i in range(10)]
  26.         for i in arr:
  27.             bucket_list[i//(10**k)%10].append(i)
  28.         arr=[j for i in bucket_list for j in i]
  29.     return arr


  30. #时间比较
  31. list1=[]
  32. for i in range(10000):
  33.     list1.append(random.randint(1,100000))

  34. t1=time.time()
  35. print(bubble_sort(list1))
  36. t2=time.time()
  37. print(t2-t1)

  38. t1=time.time()
  39. print(quick_sort(list1))
  40. t2=time.time()
  41. print(t2-t1)

  42. t1=time.time()
  43. print(radix_sort(list1))
  44. t2=time.time()
  45. print(t2-t1)

  46. print(t2-t1)
复制代码

评分
二分查找:https://fishc.com.cn/thread-227636-1-1.html

评分

参与人数 4荣誉 +12 鱼币 +4 贡献 +6 收起 理由
汐澜sama + 1 + 1 鱼C有你更精彩^_^
元豪 + 2 + 2 没度了。
liuhongrun2022 + 5 + 1 + 3 无条件支持楼主!
歌者文明清理员 + 4 + 3

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-4-29 10:45:39 | 显示全部楼层

回帖奖励 +3 鱼币

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-4-29 10:46:23 | 显示全部楼层

回帖奖励 +3 鱼币

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-4-29 11:22:17 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-4-29 11:23:31 | 显示全部楼层

回帖奖励 +3 鱼币

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-4-29 11:37:55 | 显示全部楼层

回帖奖励 +3 鱼币

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-4-29 11:49:19 | 显示全部楼层

回帖奖励 +3 鱼币

评分

参与人数 1贡献 +3 收起 理由
sfqxx + 3 无条件支持楼主!

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-4-29 12:52:40 | 显示全部楼层
顶帖
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-4-29 14:31:19 | 显示全部楼层

回帖奖励 +3 鱼币

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-4-29 17:06:16 | 显示全部楼层

回帖奖励 +3 鱼币

渔币
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-4-29 20:58:55 | 显示全部楼层

回帖奖励 +3 鱼币

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-5-1 13:31:51 | 显示全部楼层

回帖奖励 +3 鱼币

336666
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-1 17:39:19 | 显示全部楼层

回帖奖励 +3 鱼币

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-5-7 17:12:49 | 显示全部楼层
先收藏再琢磨,谢谢。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-15 11:47:25 | 显示全部楼层

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-5-15 12:11:57 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-5-15 16:24:10 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-7-29 13:13:16 | 显示全部楼层

回帖奖励 +20 鱼币

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-11-29 17:38:44 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-22 21:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表