题解 | #字符串排序#
字符串排序
https://www.nowcoder.com/practice/5af18ba2eb45443aa91a11e848aa6723
""" 冒泡排序:两两依次比较,一轮过后,最大的元素排在了最后, 然后忽略最后一个元素,对前面的元素再排序,直到结束。 **优化:当发现在某一轮次中,顺序没有任何改变,说明前面的顺序 已经排列好了,可以提前终止。 """ # 最后的b-a是程序运行时间,比较优化前与优化后的用时差异 # import time # a = time.time_ns() # 定义两个相邻元素的位置互换函数 def position_change(list_m,position_before,position_behind): mid_value = list_m[position_before] list_m[position_before] = list_m[position_behind] list_m[position_behind] = mid_value num = int(input()) list1 = [] for i in range(num): list1.append(input()) for number_of_turns in range(num): # 终止标志,若该轮次没有发生过任何一次位置互换,提前终止排序 end_symbol = 0 # 将最大的元素排到最后(忽略上一轮得到的最大元素) for j in range(1,num-number_of_turns): if list1[j] < list1[j-1]: position_change(list1,j-1,j) end_symbol = 1 if end_symbol == 0: break for each in list1: print(each) # b = time.time_ns() # print(b-a)