如何改进python中的排序算法?

2024-10-06 08:42:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我用python写了一个排序算法,但我认为它看起来很糟糕。我怎样才能使它更好、更高效

#lis is the list you want to sort for smallest to biggest
def sortMin(lis):
  output = []
  listen = lis
  for i in range(len(lis)):
    curNum = lis[0]
    curArr = 0
    for j in range(len(lis)):
      if listen[j] < curNum:
        curNum = listen[j]
        curArr = j
    output.append(curNum)
    listen.pop(curArr)
  return output

编辑:我知道list.sort()函数,但我想自己做一个


Tags: toin算法foroutputlen排序is
2条回答

这是另一个提高性能的“排序函数”/ 可读性优于您的(避免嵌套循环)

def sortMin(my_list):
    sorted_list = []
    while my_list:
        min_ = my_list [0]
        for x in my_list:
            if x < min_:
                min_= x
        sorted_list.append(min_)
        my_list.remove(min_)
    return sorted_list

测试:

l = [-5, -23, 5, 0, 23, -6, 23, 67]    
sortMin(l)

结果:

[-23, -6, -5, 0, 5, 23, 23, 67]

有许多方法可以有效地进行排序。最简单有效的方法是使用python中可用的排序方法

lis = ['c', 'a', 'b']
lis.sort() # This will sort the list in ascending order

如果你想学习排序算法,那么可能会有关于这个主题的好书

对于特定的一些使用python排序的方法,您可以签出如下内容:https://www.tutorialspoint.com/python_data_structure/python_sorting_algorithms.htm

相关问题 更多 >