在我认为是python2的JES中,如何执行嵌套for循环来计算rep,直到列表排序为止

2024-05-23 17:09:28 发布

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

我参加了一个初级编程类使用JES,我相信是Python2。 我的老师要求我们创建一个空列表,然后添加随机数,然后从低到高排序。那部分我做得对。额外的功劳是添加一个嵌套for循环,该循环将计算排序列表所需的重复次数。 这就是我所拥有的:

from random import * def main(): # create list of 25 (this can be changed to number of your choice) random numbers from -100 to 100 # print list with message "list before shuffling" numList = [] count = 0 while count < 15: num = randint( -100 , 100 ) numList.append(num) count = count + 1 printNow("the List before shuffling: " +str(numList)) n = len(numList) add = 0 # Randomly shuffle list with items only moving if a lower number is being switched with a larger number # do this 1000 times ( this can be changed to number of your choice) # print list with message "list after shuffling" for reps in range (0 , 500): i = randrange(0, n) j = randrange(0, n) # extra credit, add nested for loop to count number of reps it takes to sort the list for sort in range(0, len(numList)): for item in range(sort+1, len(numList)): while numList[sort] < numList[item] or add < reps: add = add + 1 if i < j: if numList[i] > numList[j]: temp = numList[i] numList[i] = numList[j] numList[j] = temp elif j < i: if numList[i] < numList[j]: temp = numList[j] numList[j] = numList[i] numList[i] = temp print(" List was sorted in " + str(add) + " reps.") printNow("The List after shuffling: " +str(numList))

我的老师说我的额外学分部分有太多的循环。我卡住了,正在找人解释我做错了什么。 我不想有人帮我解决,但告诉我我做错了什么。你知道吗


Tags: oftoinaddnumberforifcount
1条回答
网友
1楼 · 发布于 2024-05-23 17:09:28

我不认为你有任何理由把一个while循环放在你的两级for循环中。使用两个for循环,您应该能够遍历您的列表并使用其他一些条件检查器(提示:您已经在显示的脚本中使用过)来确定当前列表元素是否在正确的位置(目前-稍后可能会乱序)。你可以看看:

bubble sort

相关问题 更多 >