Skip to content

指鹿为马排序

搞笑指数:🤣🤣🤣🤣🤣

1. 题目描述

题目描述

聚集一帮人并向他们展示要排序的列表。询问他们这个列表是否是排序好的;干掉其中认为没有排序好的人,重复几次,直到所有人同意这个列表是排序好的。

2. 关键点

  • 《指鹿为马》

3. 代码实现

点击显示代码
python
import random


def 指鹿为马排序(lst):
    """指鹿为马排序"""
    丞相 = '赵高'
    皇帝 = '秦二世胡亥'
    满朝文武 = ['甲', '乙', '丙', '丁', '戊']
    print(
        f'丞相{丞相}拿出了原始列表献给皇帝{皇帝},'
        '说:“这是一个已经排好序的列表,特意献给陛下鉴赏。”')
    print(
        f'皇帝{皇帝}看了看,心想这列表明明没有排好序,为何{丞相}说排好了呢?'
        '便问道:“丞相弄错了吧?这列表明明没有排好序,怎么说排好了呢?”')
    print(
        f'{丞相}没有理会{皇帝}的话,而是一本正经对着满朝文武问道:'
        '“你们说说,这列表排好没有?”')

    还活着的满朝文武 = []
    for 官员 in 满朝文武:
        回答 = random.choice(['已经排好', '没有排好'])
        print(f'>>> 官员{官员}回答说:{回答}')
        if 回答 == '没有排好':
            print(f'官员{官员}被拖了出去,不久外面传来一声惨叫')
        else:
            还活着的满朝文武.append(官员)

    print('满朝文武官员还剩{}活着'.format('、'.join(还活着的满朝文武)))
    print('\n至此,所有人都说此列表已经排好了序,你说呢?')
    x = input('你说这列表排好了吗?[yes/no]: ')
    if x == 'yes':
        print('你学会了指鹿为马排序算法')
    else:
        print(
            '你没有学会指鹿为马排序算法,满朝文武都看向了你,'
            '你再也没有机会学此算法了')


lst = [random.randint(0, 10) for i in range(10)]
print(lst)
指鹿为马排序(lst)
print(lst)

4. 运行示例

txt
[0, 4, 4, 7, 0, 2, 5, 8, 9, 3]
丞相赵高拿出了原始列表献给皇帝秦二世胡亥,说:“这是一个已经排好序的列表,特意献给陛下鉴赏。”
皇帝秦二世胡亥看了看,心想这列表明明没有排好序,为何赵高说排好了呢?
    便问道:“丞相弄错了吧?这列表明明没有排好序,怎么说排好了呢?”
赵高没有理会秦二世胡亥的话,而是一本正经对着满朝文武问道:“你们说说,这列表排好没有?”
>>> 官员甲回答说:没有排好
官员甲被拖了出去,不久外面传来一声惨叫
>>> 官员乙回答说:已经排好
>>> 官员丙回答说:没有排好
官员丙被拖了出去,不久外面传来一声惨叫
>>> 官员丁回答说:已经排好
>>> 官员戊回答说:已经排好
满朝文武官员还剩乙、丁、戊活着

至此,所有人都说此列表已经排好了序,你说呢?
你说这列表排好了吗?[yes/no]: yes
你学会了指鹿为马排序算法
[0, 4, 4, 7, 0, 2, 5, 8, 9, 3]

5. 进阶思考