python排序

python排序,第1张

概述冒泡排序defbubbleSort(arr):n=len(arr)foriinrange(n):forjinrange(n-i-1):ifarr[j]>arr[j+1]:arr[j],arr[j+1]=arr[j+1],arr[j]returnarr插入排序definsertionSort(arr):n=len(arr)foriinrange(1,n):key=arr[i]j=i-1whilej>=0andkey 冒泡排序

def bubbleSort(arr):
n=len(arr)
for i in range(n):
for j in range(n-i-1):
if arr[j]>arr[j+1]:
arr[j],arr[j+1]=arr[j+1],arr[j]
return arr


插入排序

def insertionSort(arr):
n=len(arr)
for i in range(1, n):
key = arr[i]
j = i - 1
while j >= 0 and key < arr[j]:
arr[j + 1] = arr[j]
j -= 1
arr[j + 1] = key
return arr


快速排序

def partition(arr, low, high):
i = (low - 1) # 最小元素索引
pivot = arr[high]
for j in range(low, high):
# 当前元素小于或等于 pivot
if arr[j] <= pivot:
i = i + 1
arr[i], arr[j] = arr[j], arr[i]
arr[i + 1], arr[high] = arr[high], arr[i + 1]
return (i + 1)

def quickSort(arr, low, high):
if low < high:
pi = partition(arr, low, high)
quickSort(arr, low, pi - 1)
quickSort(arr, pi + 1, high)
return arr


选择排序

def choseSort(arr):
n=len(arr)
for i in range(n):
min_IDx = i
for j in range(i + 1, n):
if arr[min_IDx] > arr[j]:
min_IDx = j
arr[i], arr[min_IDx] = arr[min_IDx], arr[i]
return arr


希尔排序

def shellsort(arr):
n = len(arr)
gap = int(n / 2)
while gap > 0:
for i in range(gap, n):
temp = arr[i]
j = i
while j >= gap and arr[j - gap] > temp:
arr[j] = arr[j - gap]
j -= gap
arr[j] = temp
gap = int(gap / 2)
return arr

总结

以上是内存溢出为你收集整理的python排序全部内容,希望文章能够帮你解决python排序所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1185193.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存