• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

Addicom

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

快速排序

快速排序python代码:

 1 def partPos( arr , left , right ):
 2     #选取中间的mid为分隔数值
 3     mid = (left+right)//2
 4     #将其与arr[right]交换
 5     arr[mid],arr[right] = arr[right],arr[mid]
 6     pivot = arr[right]
 7     i = left
 8     for j in range(left,right+1):
 9         if arr[j]<=pivot:
10             arr[i],arr[j] = arr[j],arr[i]
11             i += 1
12     return i-1
13 
14 def quickSort( arr , left , right ):
15     if left<right:
16         #获取此次分隔后中间数值位置
17         pos = partPos( arr , left , right )
18         #新一轮分隔
19         quickSort( arr , left , pos-1 )
20         quickSort( arr , pos+1 , right )
21     return
22 
23 nums = [9,8,7,6,5,4,3,2,1]
24 quickSort(nums,0,8)
25 print(nums)

输出:[1, 2, 3, 4, 5, 6, 7, 8, 9]

 

posted on 2021-10-22 16:27  Addicom  阅读(33)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3