python3写冒泡排序_使用python3实现冒泡排序、选择排序和快速排序
冒泡排序的時間復(fù)雜度是O(n^2),選擇排序的時間復(fù)雜度也是O(n^2),這是因為這兩種排序算法的元素比較次數(shù)是相同的。但因為冒泡排序是每比較一次,就會交換一次,而選擇排序是每一輪循環(huán)結(jié)束后才進行一次交換。所以,選擇排序要相對速度更快一些。
冒泡排序
def bubbleSort(nums):
for i in range(0, len(nums)):
for j in range(0, (len(nums) - 1 - i)):
if nums[j] > nums[j+1]:
temp = nums[j]
nums[j] = nums[j+1]
nums[j+1] = temp
return nums
選擇排序
def selectSort(nums):
for i in range(len(nums) - 1, 0, -1):
maxIndex = 0
for j in range(1, i + 1):
if nums[j] > nums[maxIndex]:
maxIndex = j
temp = nums[i]
nums[i] = nums[maxIndex]
nums[maxIndex] = temp
return nums
快速排序
def quickSort(nums, left, right):
i = left
j = right
base = nums[left]
if i < j:
return nums
while i != j:
while nums[j] >= base and i < j:
j = j - 1
while nums[i] <= base and i < j:
i = i + 1
if i < j:
temp = nums[i]
nums[i] = nums[j]
nums[j] = temp
nums[left] = nums[i]
nums[i] = base
quickSort(nums, left, i-1)
quickSort(nums, i+1, right)
return nums
調(diào)用
nums = [23, 18, 232, 10, 5, 88, 34, 11, 9]
newNums1 = bubbleSort(nums)
newNums2 = selectSort(nums)
newNums3 = quickSort(nums, 0, len(nums) - 1)
print(newNums1)
print(newNums2)
print(newNums3)
打印結(jié)果
[5, 9, 10, 11, 18, 23, 34, 88, 232]
[5, 9, 10, 11, 18, 23, 34, 88, 232]
[5, 9, 10, 11, 18, 23, 34, 88, 232]
Have fun.
總結(jié)
以上是生活随笔為你收集整理的python3写冒泡排序_使用python3实现冒泡排序、选择排序和快速排序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 视图怎么调用方法_mysql
- 下一篇: python中uniform(a、b)_