A29970.【PY】选择排序
2024-10-26 11:53:02
发布于:浙江
24阅读
0回复
0点赞
以下是使用选择排序算法对一串数字进行排序的Python代码,代码遵循从大到小的排序规则:
# 获取输入内容,并转换为整数列表
n = list(map(int, input().split(',')))
# 选择排序
for i in range(len(n)):
# 假设当前位置为最大值所在位置
max_index = i
for j in range(i+1, len(n)):
# 如果发现更大的值,则更新最大值所在位置
if n[max_index] < n[j]:
max_index = j
# 交换当前位置和最大值所在位置的元素
n[i], n[max_index] = n[max_index], n[i]
# 输出排序后的列表
print(n)
输入处理:**
**
n = list(map(int, input().split(',')))
这行代码首先使用input()函数获取用户输入的一行字符串,该字符串包含若干个用逗号分隔的数字。然后,split(',')方法将输入的字符串按照逗号分割成一个字符串列表。map(int, ...)函数将这个字符串列表中的每个元素转换为整数。最后,list(...)将这些整数转换为一个列表n。
选择排序算法:
for i in range(len(n)):
max_index = i
for j in range(i+1, len(n)):
if n[max_index] < n[j]:
max_index = j
n[i], n[max_index] = n[max_index], n[i]
这段代码实现了选择排序的核心逻辑。
外层循环:for i in range(len(n)),这个循环遍历列表n的每个元素,从第一个元素到最后一个元素。
内层循环:for j in range(i+1, len(n)),这个循环从当前外层循环的下一个元素开始,遍历到列表的末尾。
max_index = i:初始化max_index为当前外层循环的索引i,假设当前位置的元素是最大的。
if n[max_index] < n[j]:如果发现一个比当前最大值还大的元素,更新max_index为这个新的最大值的索引。
n[i], n[max_index] = n[max_index], n[i]:在内层循环结束后,如果max_index不是最初的i(即如果找到了更大的值),则将当前位置i的元素与最大值所在位置max_index的元素交换。
输出排序后的列表:
print(n)
这行代码将排序后的列表n打印出来。
总结:这段代码通过选择排序算法,将输入的一串数字从大到小排序,并输出排序后的结果。选择排序的时间复杂度为O(n^2),其中n是列表的长度。
这里空空如也
有帮助,赞一个