用户:
SkyWolf查看:4 回复:3 评论:4 创建时间:2019-09-23T19:00:00
请利用冒泡排序法,将1-1000间的任意1000个正整数倒着拍一拍(即较大的大数在前,较小的数在后)。
以下是我的代码
import random
import time
j = 0
i = 0
temp = 0
numbers = []
for x in range(1000):
numbers.append(random.randint(0, 1000))
start = time.time()
for x in range((len(numbers) - 1)):
j = 1
i = 1
for x in range((len(numbers) - i)):
if (numbers[(j + 1)] < numbers[(j + 1) - 1]) :
temp = numbers[(j + 1)]
numbers[(j + 1)] = numbers[(j + 1) - 1]
temp = numbers[(j + 1) - 1]
j = j + 1
i = i + 1
useTime = time.time() - start
print(numbers)
print('使用了' + str(useTime) + '秒')
Y = False
急_开_锁_办_证810864少侠你的思路比较乱,我没看太懂,我按我自己的思路帮你改了一下(交换2个变量的那一步我用语法糖偷了懒,希望你不要学我):
import random
import time
numbers = []
#生成多个随机数,并逐个加入列表
for x in range(1000):
numbers.append(random.randint(0, 1000))
#开始计时
start = time.time()
#开始排序
for i in range( len(numbers) ):
for j in range( len(numbers) - i - 1):
if (numbers[j] < numbers[j + 1]) :
#使用Python特有的语法糖([a, b] = [b, a])交换变量:>
[numbers[j], numbers[j + 1]] = [numbers[j + 1], numbers[j]];
j = j + 1
i = i + 1
#计算用时
useTime = time.time() - start
#输出结果
print( numbers )
print('使用了' + str(useTime) + '秒')
点赞0
评论