print("SameAverage:") print(same_average([6,25,29,10,6,5,8,0,20,19]))
The snippet can be accessed without any authentication.
Authored by
sigmum96
Edited
snippetfile1.txt 1.94 KiB
import operator
import random
def isSorted(op,ls):
for i in range(len(ls)-1):
res= op(ls[i],ls[i+1])
if not res:
break
return res
def insertsort(seq):
x=1
while x < len(seq):
key= seq[x]
k=x-1
while k>=0 and seq[k]>key:
seq[k+1]= seq[k]
k= k-1
seq[k+1]=key
x += 1
return seq
def test_a3():
for i in range(10):
xs = insertsort(random.sample(range(100),10))
print(xs,isSorted(operator.le,xs))
def min_diff(xs):
xs.sort()
tp= (xs[1],xs[0],(xs[1]-xs[0]))
for i in range(1,len(xs)-1):
if xs[i+1]-xs[i] < tp[2]:
tp= (xs[i],xs[i+1],(xs[i+1]-xs[i]))
return tp[:-1]
def same_average(xs):
av= sum(xs)//len(xs)
xs.sort()
res=[]
for i in range(len(xs)):
for j in range(i,len(xs)):
if (xs[i]+xs[j])//2==av:
res.append((xs[i],xs[j]))
elif (xs[i]+xs[j])//2>av:
break
return res
def quicksort(A):
X=[]
res=[]
c=0
for i in A:
X.append((i,c))
c+=1
li= quick(X,0,((len(X))-1))
for i in li:
res.append(i[0])
return res
def quick(X,low,high):
if low<high:
m=partition1(X,low,high)
quick(X,low,m-1)
quick(X,m+1,high)
return X
def partition1(X,low,high):
pval=(X[low])[0]
pindx=(X[low])[1]
i=low
for j in range(low+1,high+1):
if (((X[j])[0])<pval):
i=i+1
X[i],X[j]=X[j],X[i]
elif (((X[j])[0])==pval) and (((X[j])[1])<pindx):
i=i+1
X[i],X[j]=X[j],X[i]
X[i],X[low]=X[low],X[i]
return i
print("A3:")
test_a3()
print("min_diff:")
print(min_diff([3,10,3,9,5,1,2,7,6,8]))
print("SameAverage:")
print(same_average([6,25,29,10,6,5,8,0,20,19]))
print("quicksort:")
print(quicksort([6,25,29,10,6,5,8,0,20,19]))
Please register or sign in to comment