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则将该数输出一次 因为新数组是一一对应的原来的数组,所以还原输出的时候要加上最小数