import sys

x = int(input())

def bubble_sort(list):
    for i in range(len(list) - 1):  # 此处的i指的是趟数
        exchange = False
        for j in range(len(list) - 1 - i):
            if list[j] > list[j + 1]:
                list[j], list[j + 1] = list[j + 1], list[j]
                exchange = True
        if not exchange:
            return

def select_sort(list):
    for i in range(len(list)):
        min_loc = i # 此处的i用于确定最小值的位置
        for j in range(i + 1, len(list)):
            if list[j] < list[min_loc]:
                min_loc = j
        if min_loc != i:
            list[i], list[min_loc] = list[min_loc], list[i]

def insert_sort(list):
    for i in range(1, len(list)):
        temp = list[i]
        j = i - 1
        while j >= 0 and list[j] > temp:
            list[j + 1] = list[j]
            j -= 1  # 循环返回的j对应的是进入循环的j减去1得到的值,因此在结束循环时,需要将循环结束得到的j加上1才是有空位的那个位置的下标
        list[j + 1] = temp

# 解题本体
if x >= 1 and x <= 1000:
    list = []
    for i in range(x):
        k = int(input())
        if k in list:
            pass
        else:
            list.append(k)
    insert_sort(list) # 使用自己写的冒泡算法
    for j in list:
        print(j)
else:
    pass

由于本题需要使用到排序算法,python自带的sort()函数可用于排序。

此处不使用sort(),选择从零实现排序算法的三大捞王:冒泡、插入、选择。

【目的】

练习简单排序方法的实现过程。

冒泡:冒泡的趟数、无序区的范围;

选择:无序区最小数的位置、无序区与有序区的区分;

插入:插入的趟数、插入位置的下标、完成插入的条件。