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(),选择从零实现排序算法的三大捞王:冒泡、插入、选择。
【目的】
练习简单排序方法的实现过程。
冒泡:冒泡的趟数、无序区的范围;
选择:无序区最小数的位置、无序区与有序区的区分;
插入:插入的趟数、插入位置的下标、完成插入的条件。