import random
i=1
a=[]
while(i<=10000):
b=random.randint(0,9999)
a.append(b)
i=i+1
print(a)
def kgsorting(a):
k=1
sum=a[0]
while(k<=(len(a)-1)):
sum=sum+a[k]
k=k+1
avg=sum/len(a)
return avg
#print(kgsorting(a))
def splitlist(a):
i=0
b=[]
c=[]
avg=kgsorting(a)
while(i<=(len(a)-1)):
if(a[i]>=avg):
b.append(a[i])
else:
c.append(a[i])
i=i+1
return c,b
(c,b)=splitlist(a)
#print(f+g)
#g=int(input())
i=1
while(i<=1):
(f,g)=splitlist(c)
(h,y)=splitlist(b)
i=i+1
flen=len(f)
glen=len(g)
hlen=len(h)
ylen=len(y)
i=1
while(i<=flen):
k=0
while(k<=(flen-2)):
if (f[k+1]<f[k]):
temp=f[k+1]
f[k+1]=f[k]
f[k]=temp
k=k+1
i=i+1
#print(b)
i=1
while(i<=glen):
k=0
while(k<=(glen-2)):
if (g[k+1]<g[k]):
temp=g[k+1]
g[k+1]=g[k]
g[k]=temp
k=k+1
i=i+1
#print(c)
#print((c+b))
i=1
while(i<=hlen):
k=0
while(k<=(hlen-2)):
if (h[k+1]<h[k]):
temp=h[k+1]
h[k+1]=h[k]
h[k]=temp
k=k+1
#print(b)
i=1
while(i<=ylen):
k=0
while(k<=(ylen-2)):
if (y[k+1]<y[k]):
temp=y[k+1]
y[k+1]=y[k]
y[k]=temp
k=k+1
i=i+1
#print(c)
print((f+g+h+y))
wer=int(input())
嗨!我试图用python3编写一个排序代码,基本上我想把一个数组,比如说1000个随机整数,拆分成不相等的零件。零件条件是列表中的项低于或高于所有项的平均值数字。然后呢我用了4次气泡排序法来排序这两个列表。这个排序似乎比bubblesort快,我想为它拆分例如在2,4,8,16,32,64…n没有做的事情我做的代码为4裂开了。很明显分裂的次数越多,分裂的速度就越快,所以我想要n次分裂。我还没有找到一种递归的方法,也没有通过循环或做点什么。做点什么你知道怎么做吗? 谢谢 编辑:程序首先,从随机整数中列出一个列表,然后计算平均值,然后将列表a拆分为c,b列表,然后将c拆分为f,g,b拆分为h,y列表。最后我有4个列表,我对每个列表使用了4次气泡排序来对它们进行排序,并在最后合并了4个列表。有人知道如何将n个分隔符列为一个列表吗?你知道吗
执行n要列出的拆分量A的递归循环需要为每次拆分列表创建2个列表。为此,将创建一个方法,该方法接收一个列表并将其拆分为两部分,然后为这些部分再次调用它。你知道吗
另一种方法是简单地将列表分成n个部分,但这也只有在有n个列表的情况下才有效 Python: fastest way to create a list of n lists演示如何使用
虽然这会创建一个列表列表,但是可以通过一些工作来完成
然后做一个递归循环
我将检查以确保^^工作,因为目前我认为它不工作,但想法是存在的,只需拆分列表并调用相同的函数再次拆分它。你知道吗
相关问题 更多 >
编程相关推荐