冒泡排序,快速排序
冒泡拍序
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)