使用python进行并发快速排序。需要使用XML文件作为输入

时间:2017-04-06 04:24:17

标签: xml python-3.x input

我在python中运行并发快速排序程序,但我已经为代码提供了静态输入。我想使用xml文件作为代码的输入。我想在xml文件中传递数字。 以下是我的代码。请帮忙!

from threading import Thread
import threading

import time
import _thread
import xml
data = []
def qsort(sets,left,right):

print("thread {0} is sorting {1}".format(threading.current_thread(), sets[left:right]))

i = left
j = right
pivot = sets[(left + right)//2]
temp = 0
while(i <= j):
     while(pivot > sets[i]):
         i = i+1
     while(pivot < sets[j]):
         j = j-1
     if(i <= j):
         temp = sets[i]
         sets[i] = sets[j]
         sets[j] = temp
         i = i + 1
         j = j - 1

lthread = None
rthread = None

if (left < j):
    lthread = Thread(target = lambda: qsort(sets,left,j))
    lthread.start()

if (i < right):
    rthread = Thread(target=lambda: qsort(sets,i,right))
    rthread.start()

if lthread is not None: lthread.join()
if rthread is not None: rthread.join()
return sets


'''testing below'''
ls = [1,3,6,9,1,2,3,8,6]
res = qsort(ls, 0, len(ls) - 1)
print(res)

1 个答案:

答案 0 :(得分:0)

from threading import Thread
import threading
***from xml.dom import minidom***
import time
import _thread
import xml
data = []
***doc=minidom.parse("filenam.xml")***
***items=doc.getElementsByTagName("element")***
***for i in items:***
      ***data.append(int(i.attributes['val'].value.encode("utf-8")))***
def qsort(sets,left,right):

print("thread {0} is sorting {1}".format(threading.current_thread(), sets[left:right]))

i = left
j = right
pivot = sets[(left + right)//2]
temp = 0
while(i <= j):
     while(pivot > sets[i]):
         i = i+1
     while(pivot < sets[j]):
         j = j-1
     if(i <= j):
         temp = sets[i]
         sets[i] = sets[j]
         sets[j] = temp
         i = i + 1
         j = j - 1

lthread = None
rthread = None

if (left < j):
    lthread = Thread(target = lambda: qsort(sets,left,j))
    lthread.start()

if (i < right):
    rthread = Thread(target=lambda: qsort(sets,i,right))
    rthread.start()

if lthread is not None: lthread.join()
if rthread is not None: rthread.join()
return sets



//////////////////////////////////////////
for this create an xml file name "filename.xml "
content of xml file :



<input>
        <element no='34'></element>
        <element no='3'></element>
            <element no='4'></element>

</input>



try this i hope it helps