Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用堆栈python进行非递归快速排序_Python - Fatal编程技术网

使用堆栈python进行非递归快速排序

使用堆栈python进行非递归快速排序,python,Python,我有这个密码: class Pila () : inferior=0 superior=0 lista = [8,5,6,4,3,2,10] def quicksortNoRec (lista) : """Ordena la lista siguiendo el algoritmo quicksort o de ordenacin rapida. Forma no recursiva""" qs(lista,0,len(lista)-1)

我有这个密码:

class Pila () : 
  inferior=0 
  superior=0

  lista = [8,5,6,4,3,2,10]


def quicksortNoRec (lista) : 
    """Ordena la lista siguiendo el algoritmo quicksort 
       o de ordenacin rapida. Forma no recursiva""" 
    qs(lista,0,len(lista)-1)
    return lista 

def qs (lista,inicial,final) : 
  p=1 
  "declaramos la pila de estructuras" 
  pila=[20] 
  for m in range(0,20) : 
    pila=Pila() 
  "ahora se comienza a ordenar" 
  pila[p].inferior,pila[p].superior=inicial,final 
  while p : 
    inicial,final=pila[p].inferior,pila[p].superior 
    p-=1 
    izdo,dcho=inferior,superior 
    while inferior<dcho : 
      izdo,dcho=inferior,superior 
      mitad=lista[izdo+((dcho-izdo)/2)] 
      while izdo<=dcho : 
        while lista[izdo]<mitad and izdo<final : izdo+=1 
        while mitad<lista[dcho] and dcho>inicial : dcho-=1 
        if izdo<=dcho : 
          lista[izdo],lista[dcho]=lista[dcho],lista[izdo] 
          izdo+=1 
          dcho-=1 
      if izdo<final : 
        p+=1 
        pila[p].inferior,pila[p].superior=izdo,final 
      final=dcho 
  return lista
类Pila(): 次=0 上级=0 lista=[8,5,6,4,3,2,10] def quicksortNoRec(列表A): “Ordena la lista siguiendo el algoritmo快速排序 o快速奥德纳辛。无复发形式“ qs(lista,0,len(lista)-1) 返回列表a def qs(列表、正式、最终): p=1 “结构宣言” 皮拉=[20] 对于范围(0,20)内的m: pila=pila() “阿霍拉·科米恩扎·奥德纳尔” 皮拉[p]。下,皮拉[p]。上=正式,最终 而p: 第一名,最后一名=皮拉[p]。下一名,皮拉[p]。上一名 p-=1 izdo,dcho=低级,高级 低劣 我想你想要一个这个类之外的定义

class Pila () : 
  inferior=0 
  superior=0

lista = [8,5,6,4,3,2,10]
但这只是你的问题之一

另一个问题在这里

def qs (lista,inicial,final) : 
  p=1 
  "declaramos la pila de estructuras" 
  pila=[20] 
  for m in range(0,20) : 
    pila=Pila() 
我很确定你想要

def qs (lista,inicial,final) : 
  p=1 
  "declaramos la pila de estructuras" 
  pila=[Pila()  for m in range(0,20)] 

那么我想它至少会运行。。。不知道它是否会像您所说的那样,但是

您是否收到任何类型的错误消息?它应该做什么?它没有递归和堆栈的顺序数字,但我是python新手,我不知道如何运行代码,如果我调用函数qs,它会显示一个错误:回溯(最后一次调用):文件“name of File.py”,第42行,在打印quicksortNoRec(lista)中名称错误:名称“lista”未定义您如何称呼它?您需要给它一个列表来排序try
print quickSortNoRec([5,10,20,1,2,3,55])
。。。为什么不告诉它“lista”?与[1,2…
[20]
类似,表示包含1个元素的列表,该元素为
20
。如果希望
pila=[]
无任何内容,则会显示一个错误:回溯(最近一次调用):文件“pythonpilas”,第37行,打印quicksortNoRec([5,10,20,1,2,3,55]),文件“pythonpilas”,第8行,在quicksortNoRec qs中(lista,0,len(lista)-1) 文件“pythonpilas”,第20行,在qs-izdo中,dcho=subsier,superior-NameError:全局名称“subsier”没有定义……嗯……我不确定这些值应该是什么……这段代码真的有问题……你从哪里得到的?为什么不从头开始……或者用伪代码编写它,然后翻译成python呢包括伪代码?
def qs (lista,inicial,final) : 
  p=1 
  "declaramos la pila de estructuras" 
  pila=[Pila()  for m in range(0,20)]