【问题标题】:how to make ascending and descending with selection sort python [duplicate]如何使用选择排序python进行升序和降序[重复]
【发布时间】:2021-06-25 14:15:54
【问题描述】:

我有一个清单

listA = [150, 120, 100, 165, 190, 145, 182, 175, 17]

我需要它按升序和降序排序(选择排序),像这样

Ascending
[17, 100, 120, 145, 150, 165, 175, 190]
Descending
[190, 175, 165, 150, 145, 120,100, 17]

我已经看到并尝试了几次,但仍然失败。大多数情况下都有这种解决方法

for i in range(len(listA)-1):
      for i in range(len(listA)-1):
            if (listA[i]>listA[i+1]):
                listA[i],listA[i+1]=listA[i+1],listA[i]

但这只是可以做升序/降序(其中之一),还有其他方法可以在同一个程序中获取升序和降序数据吗?

【问题讨论】:

  • 为什么不用sorted 内置函数呢?无论哪种方式,您都必须运行它两次,一次用于上升,一次用于下降。您可以将它们发送到新列表。
  • 我见过 sorted build-in,但是这个任务应该用 if else 语句来完成,你能给我代码示例或参考,我不是很擅长编码吗?
  • 查看副本,其中有些方法不使用内置排序
  • 使用ascending=True变量,并在两个循环中检查:如果为真,执行循环中的逻辑,如果为假,则执行相反的if listA[i] < listA[i + 1]:

标签: python python-3.x sorting selection-sort


【解决方案1】:

您可以使用listA.sort() 方法对列表进行排序。 如果您希望它被反转,您可以使用标志reverse=True 对其进行排序。

【讨论】:

  • 还有其他方法吗,我必须用 if else 语句来解决,我真的是编程新手
  • 您可以创建自己的排序,取决于升序或降序。
  • 您可以创建自己的排序,取决于升序或降序。我将按升序演示它:``` sorted_list = [] for i in range(len(listA)): max_val = max(listA) sorted_list.insert(0, max_val) listA.remove(max_val) ```
猜你喜欢
  • 2016-03-03
  • 2016-10-05
  • 1970-01-01
  • 2020-06-06
  • 2020-11-09
  • 2016-11-05
  • 1970-01-01
  • 2021-08-24
  • 2021-12-24
相关资源
最近更新 更多