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())
привет! Я пытаюсь запрограммировать код сортировки в python 3. В основном я хочу разделить массив дат, скажем, 1000 случайных чисел на неравные части. Условие заключается в том, что элемент списка находится ниже или выше, чтобы усреднить все числа. Тогда я использовал сортировку пузырьков 4 раза, чтобы отсортировать два списка. Эта сортировка, кажется, быстрее, чем bubblesort, и я хочу разделить, например, в 2,4,8,16,32,64 ... n, не делая того, что я сделал для код для 4 расщеплений. Очевидно, чем больше расщепляется, тем быстрее это происходит, поэтому я хочу n splits.I не нашел способ сделать это рекурсивно или циклом или чем-то. У вас есть идея, что делать? thanks Редактировать: программа в начале делает список из случайных целых чисел, затем вычисляет среднее значение, затем разбивает список a на c, b списки, а затем разбивает c на f, g и b на h, y list. Наконец, i имеют 4 списка, и я использовал сортировку по 4 раза для каждого списка, чтобы отсортировать их, и я объединил 4 списка в конце. Кто-нибудь знает, как сделать n разделов, чтобы перечислить?python постоянно разделяет массив
может быть проще сформулировать свой вопрос с помощью ввода и желаемого результата, а не прогуливать нас по вашему подходу (сделайте это, комментируя код ...). Ваша копия/вставка цикла while может быть функцией, которую вы применяете, и тогда мы могли бы уточнить это дальше, но я не уверен, что понимаю, что вы пытаетесь получить в конце, что затрудняет советы правильного подхода, а не просто синтаксически правильный код. –