猫史档案馆


【Python作品分享】猴子排序【求助帖】

用户:小麦做的面包小麦做的面包查看:81 回复:2 评论:11 创建时间:2021-07-12T09:18:47


【作品展示】

center_image

 

【作品介绍】

不知道为什么排序结果是空集。。。

 

【作品源代码】

import random


def buer(a):

    for i in range((len(a) - 1)):
        if (i[i] > i[(i + 1)]):
            return True
    return False

f = 0
l = input().split(',')
for i in range(0, len(l)):
    try:
        l[i] = int(l[i])
    except :
        l[i] = float(l[i])
b = l
a = l
print(l)
while buer(b):
    f += 1
    b = []
    for i in range(len(a)):
        t = random.randint(0, (len(a) - 1))
        b.append(a[t])
        del a[t]
    print(b)
print('循环次数', f, '排序结果', b)

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页第 1 页 / 共 1 页下一页
庄nnnn额庄nnnn额

排序思想?

点赞0


评论

还有,你每次循环都把b列表设为空,不空虚才怪

b.append(a[t]) 没看见?

del a[t]没看见? 虽然第一次有可能有内容,但后面都删掉了

删的是a的项,这个是避免重复的

可是到了后面a就空了啊

循环中加一个 a=l 最后还是空集

是l不是1

不管代码哪边错了,他的排序思想就是错的,依靠概率是没有用的,

猴子排序是存在的,而且从定义上唯一有可能排序无限数列

随机能生成所有可能吗?无限循环是有可能的吧?

再说这个随机是伪随机,时间一长就会循环


lsk666666lsk666666

删了,我是S      B

点赞0


评论