python筆記3:依次輸入3個數排序打印(升序)

#方法1:if語句,練習邏輯能力

num1 = int(input('請輸入第一個數:'))

num2 = int(input('請輸入第二個數:'))

num3 = int(input('請輸入第三個數:'))

if num1 >= num2:

    if num1 >= num3:

        if num2 >= num3:

            print(num3,num2,num1)

        else:

            print(num2,num3,num1)

    else:

        print(num2,num1,num3)

else:

    if num1 >= num3:

        print(num3,num1,num2)

    elif num2 >= num3:

        print(num1,num3,num2)

    else:

        print(num1,num2,num3)

#方法2:max min函數排序

num1 = int(input('請輸入第一個數:'))

num2 = int(input('請輸入第二個數:'))

num3 = int(input('請輸入第三個數:'))

nums = []

nums.append(num1)

nums.append(num2)

nums.append(num3)

while True:

    cur =min(nums)

    print(cur)

    nums.remove(cur)

    if len(nums) == 1:

        print(nums[0])

        break

#方法3:sort函數排序

num1 = int(input('請輸入第一個數:'))

num2 = int(input('請輸入第二個數:'))

num3 = int(input('請輸入第三個數:'))

nums =[num1,num2,num3]

nums.sort()

print(nums)

#方法4冒泡法排序

nums = [4,3,5,1]

for i in range(len(nums)-1):

    for j in range(len(nums)-i-1):

        if nums[j] > nums[j+1]:

            nums[j],nums[j+1] = nums[j+1],nums[j]

print(nums)

#方法5:冒泡法排序改進

count_swap = 0

count = 0

nums = [2,3,5,6]

for i in range(len(nums)-1):

    flag = False

    for j in range(len(nums)-i-1):

        count +=1

        if nums[j] > nums[j+1]:

            nums[j],nums[j+1] = nums[j+1],nums[j]

            flag = True

            count_swap +=1

    if not flag:

        break

print(nums,count_swap,count)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章