Merge sort by using recursive strategy, i.e. divide and conquer.
def merge(left,right): result = [] i,j =0,0 while i < len(left) and j < len(right): if left[i]<right[j]: result.append(left[i]) i +=1 else: result.append(right[j]) j +=1 result += left[i:] result += right[j:] return result def merge_Sort(seq): if len(seq)<=1: return seq mid = len(seq)/2 left = merge_Sort(seq[:mid]) right = merge_Sort(seq[mid:]) return merge(left,right) seq = [0, 1, 1, 3, 4, 5, 6, 7, 7, 12, 12, 26, 34, 42, 52, 54, 56, 65, 98, 238, 4321] merge_Sort(seq)
def ins_sort_rec(seq,i): if i==0: return ins_sort_rec(seq,i-1) j = i while j > 0 and seq[j - 1] > seq[j]: seq[j -1],seq[j] = seq[j], seq[j-1] j -=1 return seq seqq = [2,1,235,21,4,8,4,8,5,89,23,0,7,6] a = ins_sort_rec(seqq,len(seqq)-1) a def insertsort(seq): for i in range(1,len(seq)): j = i while seq[j] <seq[j-1] and j>0: seq[j],seq[j-1] = seq[j-1],seq[j] j -=1 return seq b = insertsort(seqq) b def changesort(seq): count = True while count: count = False for i in range(1,len(seq)): if seq[i]<seq[i-1]: seq[i],seq[i-1] = seq[i-1],seq[i] count =True return seq ls = [2,1,235,21,4,8,4,8,5,89,23,0,7,6] c = changesort(ls) c seqq = [2,1,235,21,4,8,4,8,5,89,23,0,7,6] def selectsort(ls): for i in range(len(ls)-1): k = i for j in range(i,len(ls)): if ls[k] >ls[j]: k = j if k !=i: ls[i],ls[k]=ls[k],ls[i] return ls selectsort(seqq)