题解 | #字符串排序#
字符串排序
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)
上海得物信息集团有限公司公司福利 1188人发布