def non_recursive_sorting(list,n): if n <= 1: return list if n==2: if list[0] > list[1]: list[0], list[0] = list[1], list[0] for i in range(n-1): if list[i] > list[i + 1]: list[i], list[i + 1] = list[i + 1], list[i] return non_recursive_sorting(list,n-1) test = [random.randint(0,10000) for j in range(10000)] print(non_recursive_sorting(test,len(test)))这段代码有什么问题
时间: 2023-06-12 08:02:04 浏览: 75
BNF.zip_BNF parser analysis_bnf_bnf描述c语言_site:www.pudn.com
这段代码实现的是非递归的冒泡排序,但是在第6行的比较操作中,索引写错了,应该是list[i] > list[i+1]而不是list[i] > list[i 1],由于这个错误可能导致排序结果不正确。同时,在第3行中,n <= 1应该改为 n < 2 ,因为当n=1时应该直接返回list而不是继续递归。另外,没有定义random模块,需要在代码前面添加import random。
阅读全文