來幾個基礎的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.sortprint(list1)
3.。最基礎的冒泡排序法
num_list = [1,8,9,5,5,4,7,7,1,4]print(num_list)length = len(num_list)count_swap = 0for 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 +=1print(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 = 0for 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:	breakprint(num_list,count_swap)

這是對冒泡法的進一步改進,過濾了一些不必要的循環,提高了效率。

冒泡法算是必須具備的排序法之一,原理比較簡單,但效率比較高,背過就完事了。