来几个基础的python排序
0.。用if逻辑判断排序a = int(input())
b = int(input())
c = int(input())
nums = []
for i in range(3):
nums.append(int(input('{}:'.format(i))))
if a > b and a>c:
if b > c:
print(a,b,c)
else:
print(a,c,b)
elif b>a and b>c:
if a>c:
print(b,a,c)
else:
print(b,c,a)
elif a == b:
if a>c:
print(a,b,c)
else:
print(c,a,b)
elif a>b:
print(c,a,b)
else:
print(c,b,a)
用if判断虽然比较笨拙,对于数据太多并不好用,但比较锻炼思维逻辑能力,稍不留神就会逻辑错误,尤其是对于等于的逻辑判断,更应该仔细研究。
1.。用min,max排序nums = []
for i in range(3):
nums.append(int(input('{}:'.format(i))))
print(nums)
while True:
cur = min(nums)
print(cur)
nums.remove(cur)
if len(nums) == 1:
print(nums[0])
break
利用min,max也能实现对数据的升序,降序排列,内容也比if逻辑少了很多。
2.。直接用sort对列表排序list1 = []
for i in range(3):
list1.append(int(input('{}:'.format(i))))
print(list1)
list1.sort
print(list1)
3.。最基础的冒泡排序法
num_list = [1,8,9,5,5,4,7,7,1,4]
print(num_list)
length = len(num_list)
count_swap = 0
for i in range(length):
for j in range(length-i-1):
if num_list[j] > num_list[j+1]:
tmp = num_list[j]
num_list[j] = num_list[j+1]
num_list[j+1] = tmp
count_swap +=1
print(num_list,count_swap)
此为最基础的排序法之一,原理是对两数进行比较,然后互换位置,实现升序降序排列。
对冒泡法进行改进
num_list = [1,8,9,5,5,4,7,7,1,4]
print(num_list)
length = len(num_list)
count_swap = 0
for i in range(length):
for j in range(length-i-1):
flag = False
if num_list[j] > num_list[j+1]:
tmp = num_list[j]
num_list[j] = num_list[j+1]
num_list[j+1] = tmp
flag = True
count_swap +=1
if not flag:
break
print(num_list,count_swap)
这是对冒泡法的进一步改进,过滤了一些不必要的循环,提高了效率。
冒泡法算是必须具备的排序法之一,原理比较简单,但效率比较高,背过就完事了。