在json 文件中,数字坐标通常是字符串,在寻求遍历最优化路径的时刻,对坐标的排序就很重要呢。
案例:key=['0_12', '5_12', '2_12', '1_12', '3_12', '4_12']
运行后的结果:
key=['0_12', '1_12', '2_12', '3_12', '4_12', '5_12']
#quick_sort_of_vector
def oriation(a):
a_=0
con_a=a_con=''
a=list(a)
for i in range(0,len(a)-1):
if a[i]=='_':
a_=i
for i in range(0,len(a)):
if i<a_:
a_con=a_con+a[i]
elif i>a_:
con_a=con_a+a[i]
return int(a_con),int(con_a)
def compare_vector_size(a,b):
a_con,con_a=oriation(a)
b_con, con_b=oriation(b)
if a_con==b_con and con_a>con_b:
print("a>b")
elif a_con>b_con and con_a==con_b:
print("a>b")
elif a_con==b_con and con_a<con_b:
print("a<b")
elif a_con<b_con and con_a==con_b:
print("a<b")
elif a_con==b_con and con_a==con_b:
print("a=b")
elif a_con>b_con and con_a>con_b:
print("a>b")
elif a_con<b_con and con_a<con_b:
print("a<b")
else:
print("error")
def quick_sort(mylist,start,end):
if start<end:
i,j=start,end
base = mylist[i]
while i<j:
while(i<j) and (mylist[j]>=base):
j=j-1
mylist[i]=mylist[j]
while(i<j) and (mylist[i]<=base):
i=i+1
mylist[j]=mylist[i]
mylist[i]=base
quick_sort(mylist,start,i-1)
quick_sort(mylist,i+1,end)
return mylist
key=['9_12', '3_12', '2_12', '1_12', '3_12', '4_12']
def sort_vector(key):
te=[]
ans=[]
test={}
for i in range(0,len(key)):
add=0
i_con,con_i=oriation(key[i])
add=int(i_con)+int(con_i)
te.append(add)
test[key[i]]=add
quick_sort(te,0,len(te)-1)
for i in range(0,len(te)):
for h,j in test.items():
if te[i]==j:
ans.append(h)
break
return ans
result=sort_vector(key)
print(result)