冒泡拍序
def bubble_sort(nums):
for i in range(len(nums) - 1):
for j in range(len(nums) - i - 1):
if nums[j] > nums[j + 1]:
nums[j], nums[j + 1] = nums[j + 1], nums[j]
return nums
#冒泡排序优化
def bubble_sort2(nums):
#比如说n个数,则只要进行n-1次冒泡
for i in range(len(nums)-1):
flag=False#设置一个交换标志位
#j就是控制每一次具体的冒泡过程
for j in range(len(nums)-i-1):
if nums[j]>nums[j+1]:
nums[j], nums[j + 1] = nums[j + 1], nums[j]
flag=True
if not flag:
return nums
return nums
if __name__ == "__main__":
nums=[12,2,3,3,7]
# print(bubble_sort(nums))
快速排序
def quick_sort(b):
if len(b)<2:
return b
#选取继基准,中间的值
mid=b[len(b)//2]
#定义基准值左右两个数列
left,right=[],[]
#从原始数组中移除基准值
b.remove(mid)
for i in b:
#大于基准值放右边
if i>mid:
right.append(i)
else:
left.append(i)
#使用迭代进行比较
return quick_sort(left)+[mid]+quick_sort(right)