zoukankan      html  css  js  c++  java
  • Sorting Algorithms

    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) 
    
    
    
     
  • 相关阅读:
    Linux 小知识翻译
    Linux 小知识翻译
    Linux 小知识翻译
    Linux 小知识翻译
    Linux 小知识翻译
    Linux 小知识翻译
    Linux 小知识翻译
    Linux 小知识翻译
    Linux 小知识翻译
    Linux 小知识翻译
  • 原文地址:https://www.cnblogs.com/vpegasus/p/6867098.html
Copyright © 2011-2022 走看看