Python:带队列的selectionsort算法

时间:2017-12-08 19:57:18

标签: python string queue selection-sort

我遇到过Python练习:

  1. 读入一些字符串并将它们放入队列
  2. 按字典顺序将字符串排序到新队列中,但不应更改原始队列。我应该从头开始编写一个函数(例如,不能使用已排序的函数)
  3. 不允许使用数组
  4. 我想我已经设法为第1步提出了一个功能,但我已经在第2步中努力了好几个小时。我真的很感激任何帮助!

    以下是第1步的代码段:

    q1 = []
    
    def DisplayQueue(queue):
        for Item in queue:
            print(Item)
    
    def PushQueue(queue):
        x = True
        while x:
            user_input = input("Please enter a string (for exit type: exit): ")
            if user_input == "exit":
                x = False
            else:
               queue.append(user_input)
        return queue
    
    queue = PushQueue(q1)
    

1 个答案:

答案 0 :(得分:0)

排序可以通过多种方式完成(冒泡排序,插入排序,快速排序基数排序),但我建议您从简单的开始,尽管不是最快的。

  1. 创建一个队列(或列表)以存储答案。
  2. 查找旧数据列表中的最小元素。 *
  3. 从旧列表中删除该元素。 **
  4. 将元素添加到答案列表中。
  5. 从步骤2开始重复(如果数据列表不为空)。
  6. 每回合数据列表会越来越短, 并且元素将按递增顺序添加到答案列表中。

    *)要查找数据列表中的最小元素(可以将其放在单独的函数中),请将当前最小值的值保存在名为x或其他的变量中,并逐个查看数据项。如果数据项小于变量x中的数据项,则将该数据项的值放入x。

    现在,一旦您浏览了整个数据列表,您的变量x将包含列表中最小元素的值。

    **)您可以使用x.remove(v)从列表x中删除值v。它只是删除了该值的第一次出现。