我在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)
答案 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