我有个任务。这是一项学习任务。我成功地解决了它。但我有个问题。问题是我需要按降序排列列表中的值,而不使用函数和方法。这需要在循环中完成(没有像我一样使用sorted())。你知道吗
伙计们,我真的在寻找解决这个问题的方法,并试图自己想出这个方法。但我没有成功。请帮帮我。你知道吗
import random
spisok = []
for i in range(0,5):
spisok.append(random.randint(1,25))
print('The following numbers are generated: ')
print(spisok)
sorted_nums = sorted(spisok, reverse=True)
i = 1
last_num = sorted_nums[0]
print('{i} maximum: {maxim}'.format(i=i, maxim=last_num))
for j in range(1, len(sorted_nums)):
num = sorted_nums[j]
if num != last_num:
i += 1
print('{i} maximum: {maxim}'.format(i=i, maxim=num))
last_num = num
我解决了这个问题。感谢昵称为DarrylG的用户对解决方案的指导。你知道吗
我使用“<;”符号按降序排列数字。如果将符号改为“>;”,则数字将按升序排序。嗯,我对代码做了最低限度的修改,删除了所有的排序结果,因为现在不需要了。你知道吗
在计算机科学中,排序实际上是一项非常重要(而且经过深思熟虑)的任务,而且并不是只有一种方法。你的热情是巨大的,但一个简单的谷歌搜索会发现一些排序算法,你可以使用。我不知道你到底想用for循环做什么,但下面是我的方法:
如前所述,有几种不同的排序算法,它们适用于多种不同的情况。最容易理解(效率最低)的是冒泡排序。从本质上讲,您从头到尾遍历列表n^2次,如果当前值大于上一个值,则交换它们。用Python实现,如下所示:
同样,你也可以做一个选择排序,在列表中找到最小的项目,把它放在开头,然后找到下一个最小的,把它放在下一个位置,以此类推。。。你知道吗
…Python实现如下所示:
显然,这只是冰山一角。您还可以实现多个排序算法。插入排序、快速排序等,每种方法都能更好地处理不同的数据集。但是,如果您刚刚开始编写代码,请从气泡、选择和插入开始。一旦你学会了递归,做一个快速排序。你知道吗
如果您想看到每一个工作方式的可视化效果,我最喜欢的网站之一是VisuAlgo。你知道吗
PS:不要把代码复制到这里。学习算法是如何工作的,并尝试自己实现它。我已经提供了这两个参考和网上有吨的资源。你知道吗
相关问题 更多 >
编程相关推荐