猫史档案馆


遇到一道Python难题,请大佬帮忙,谢谢!!!

用户:SkyWolfSkyWolf查看: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


回复

上一页1 页 / 共 1下一页
sdfjusdfsdfjusdf

Hello

我真在帮你看代码

先通知你一下

告诉你有人在帮你

点赞0


评论


sdfjusdfsdfjusdf

加我QQ3406639583

 

点赞0


评论


急_开_锁_办_证810864急_开_锁_办_证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


评论