程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

問題6:Python快速排序

編輯:Python
# 快速排序,這種排序涉及到遞歸
# 思路:
# 1.先判斷列表的長度,如果>1,就要進行比較
# 2.取出列表中間元素,然後列表刪除掉中間元素
# 3.將列表其他元素和中間元素比較,大於中間元素的放在一個新的右邊列表,小於中間元素的放在一個新的左邊列表
# 4.然後返回 遞歸方法(左邊列表)+[mid]+ 遞歸方法(右邊列表)
# 如果列表的長度<=1,直接返回列表
# 這裡有個問題,[1]+[2],這是2個列表的拼接,得到[1,2]
def quick_sort(numbers):
if len(numbers) >= 2:
mid = numbers[len(numbers) // 2]
left = []
right = []
numbers.remove(mid)
for item in numbers:
if item >= mid:
right.append(item)
else:
left.append(item)
return quick_sort(left) + [mid] + quick_sort(right)
else:
return numbers
numbers = [1, 35, 87, 12, 45, 45,6]
print(quick_sort(numbers))

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved