Python 冒泡排序
实现冒泡法排序时要考虑时间复杂度和空间复杂度是靠近O(1) ,还是接近O(n),甚至是O(n²),时间复杂度大的算法会增加计算机运行负荷,效率低下。尽量写出时间复杂度小的算法。
实例一:
# 冒泡法 排序
nums = random.sample(range(1000),9)
length = len(nums)
for i in range(length):# 控制循环多少次
flag =True#假设无需交换
for j in range(length-1-i):
if nums[j]> nums[j+1]:
nums[j],nums[j+1]= nums[j+1],nums[j]# 大数与小数互换
flag =False # 如果交换了 就推翻假设
if flag:# 如果假设成立,则结束交换
break
print(nums)
实例二(最基础的if循环语句实现排序法)
nums = random.sample(range(1,1000),3)
order =None
if nums[0]> nums[1]:
if nums[1]> nums[2]:
order =[2,1,0]
else:
if nums[0]> nums[2]:
order =[1,2,0]
else:
order =[1,0,2]
else:
if nums[0]> nums[2]:
order =[2,0,1]
else:
if nums[1]> nums[2]:
order =[0,2,1]
else:
order =[0,1,2]
for i in order:
print(nums[i])
实例三 (sort排序法)
nums = random.sample(range(1000),20)
nums.sort(reverse =True)# sort 排序法
多多练习各种排序法,不仅限于冒泡排序,分析计算他们的时间复杂度。