题解 | #字符串排序#

字符串排序

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)

全部评论

相关推荐

FFFcaptain328:入职即送东南亚腰子之旅👿
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务