python实现快排+冒泡排序

1、快排

"""
快排:从一堆杂乱的数据中挑选一个基准值,将这些数字和基准值一一比较,大的放基准值的右边,小的放左边

实现思路:定义一个函数,挑选列表的首个数字作为基准值,其他数字比基准值小的数字生成列表,同理,其他数字和基准值大的数字生成另一个列表,再递归快排这两个列表
"""

def quick_sort(nums):
    
    if len(nums) < 2:
        return nums
    else:
        base = nums[0]
        left = [ i for i in nums[1:] if i <base ]
        right = [i for i in nums[1:] if i > base]
        return quick_sort[left] + [base] + quick_sort[right]

nums = [5, 88, 35, 1, -8, 52, 552, 103254, 956, 235, 154, 22]
print(quick_sort(nums))
输出:[-8, 1, 5, 22, 35, 52, 88, 154, 235, 552, 956, 103254]

2、冒泡

"""
冒泡:从左向右,两两比较,如果左边大于右边,则交换位置
"""

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

 

posted @ 2020-07-06 16:37  柳-姑娘  阅读(221)  评论(0编辑  收藏  举报