I've got a problem while i was implementing a Quick sort algorithm, just like in this case, python interpretor automaticlly restarting without returning answer . I couldn't find a more similar question than this one. As this post's been inactive since 2012 and the problem wasn't solved i decided to ask again. Here goes my code:
#coding:utf8
import time
import sys
sys.setrecursionlimit(1000000)
x=eval(input("Type a list: "))
start=time.time()
L=[]
R=[]
L_=[]
R_=[]
c=0
z=x[0]
for j in range(1,len(x)):
if x[j]>= z:
R.append(x[j])
elif x[j] <= z:
L.append(x[j])
def fun(x,lista,c):
for i in range(len(x)-1):
for j in range(i+1,i+2):
if x[i]<=x[j] and c!=len(x)-2:
c+=1
elif x[i]>x[j]:
lista.append(x[i])
lista.append(x[j])
x[i]=lista[1]
x[j]=lista[0]
lista=[]
c=0
return fun(x,lista,c)
elif x[i]<=x[j] and c==len(x)-2:
c=0
return x
fun(L,L_,c)
fun(R,R_,c)
print(L+[z]+R)
end=time.time()
print(end-start)
The Python's version that i'm using is 3.4. As you can see, i used the sys
library to increase the recursion limit, but it didn't solve my problem. I tested it, and it can sort an 'X' amount of elements that is in the range of 300>X>250, if i'm right. How can I solve this problem? Thank you, in advance.