Python的三种排序方法

Python的三种排序方法

第一种是较为简单的

选择排序

number = [3,5,4,2,8,9,1,6,7]  #0,8
for k in range(0,len(number)):
	for l in range(k+1,len(number)):
		if number[k]>=number[l]:
			number[k],number[l] = number[l],number[k]
print(number)

这是一个两层循环
第一次循环先是用第一位数与其他数一个一个对比然后把最小的元素放在的第一位,
然后在接下来的循环从小到大依次排序出来

插入排序

#插入排序
arr=[8,3,2,6,1,4,9,7]
for i in range(1,len(arr)):
	for j in range(i,0,-1):
		if arr[j]<=arr[j-1]:
			arr[j],arr[j-1]=arr[j-1],arr[j]
print(arr)

桶排序则是这三种最难的排序方法

arr = [5,3,3,6,7,8,9]
max_num=arr[0]
min_num=arr[0]
for num in arr:
	if num>max_num:
		max_num = num
	elif num<min_num:
		min_num = num
len_arr1 = max_num - min_num + 1
offset = min_num
arr1 = [0] * len_arr1
for num in arr:
	arr1[num - offset] += 1
index = 0
for i in arr1:
	for j in range(0,i):
		print(offset+index,end="")
		print("   ",end="")
	index += 1

第一步 从数组中求出最大数和最小数,然后用最大数和最小数相减加一的方法求出这个数组的值范围
第二步 用[0]*长度的方法 定义出一个用于计数的空数组
第三步 用For循环原来的数组 将其中的数减去最小值 一一对应空数组的位置 如果存在 则增加1
第四步 用For循环新数组 如果为1则将该数输出一次 因为新数组是一一对应的原来的数组,所以还原输出的时候要加上最小数
在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值