Facebook
From DK, 6 Years ago, written in Python.
This paste is a reply to Sorting from DK - go back
Embed
Viewing differences between Sorting and Re: Sorting
def insertion_sort(A, r = False):
        for i in range(1,len(A)):
                k = A[i]
                j = i - 1
                while j>=0 and ( (A[j] > k and r) or (A[j] < k and not r ) ):
                        A[j + 1] = A[j]
                        j = j - 1
                A[j + 1] = k
        return A
        
def bubble_sort(A, r = False):
        for i in range(len(A)):
                print(A)
                for j in range(len(A) - i - 1):
                        if A[j] > A[j+1]:
                                t = A[j]
                                A[j] = A[j+1]
                                A[j+1] = t
        return A
        
        
def quick_sort(A, p, r):
        def partition(p, r):
                x = A[p]
                while True:
                        while A[p] < x:
                                p = p + 1
                        while A[r] > x:
                                r = r - 1
                        if p < r:
                                t = A[r]
                                A[r] = A[p]
                                A[p] = t
                                p = p + 1
                                r = r - 1
                        else:
                                return r
        if p < r:
                q = partition(p, r)
                quick_sort(A, p, q)
                quick_sort(A, q+1, r)
                
A = [4,2,1,6,7]
quick_sort(A, 0, len(A) - 1)
print(A)
#print(insertion_sort(A, False))

#print(bubble_sort(A))