Skip to content
Snippets Groups Projects

print("SameAverage:") print(same_average([6,25,29,10,6,5,8,0,20,19]))

  • Clone with SSH
  • Clone with HTTPS
  • Embed
  • Share
    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]))
    
    
    
        
    0% Loading or .
    You are about to add 0 people to the discussion. Proceed with caution.
    Please register or to comment