zoukankan      html  css  js  c++  java
  • python实现排序算法

    冒泡排序 
    import random
    def BubbleSort(num):
        n=len(num)
        for i in range(0,n):
            for j in range(i,n):
                if num[i]>=num[j]:
                    num[i],num[j]=num[j],num[i]
        return num
     
    选择排序
    def SelectSort(num):
        for i in range(0,len(num)):
            mindex=i
            for j in range(i,len(num)):
                if num[mindex]>num[j]:
                    mindex=j
            num[mindex],num[i]=num[i],num[mindex]
        return num
     
    插入排序
    def InsertSort(num):
        for i in range(1,len(num)):
            j=i-1
            tmp=num[i]
            while j>0 and tmp<num[j]:
                num[j+1]=num[j]            
                j-=1
            num[j]=tmp
        return num
     
    归并排序
    def MergerSort(num):
        if len(num)<=1:
            return num
        left=MergerSort(num[:len(num)/2])
        right=MergerSort(num[len(num)/2:])
        result=[]
        while len(left)>0 and len(right)>0:
            if left[0]>right[0]:
                result.append(right.pop(0))
            else:
                result.append(left.pop(0))
        if len(left)>0:
            result.extend(MergerSort(left))
        else:
            result.extend(MergerSort(right))
        return result
     
    快速排序
    def QuickSort(num):
        if len(num)<=1:
            return num
        greater=[]
        less=[]
        p=num.pop(random.randint(0,len(num)-1))
        for item in num:
            if item < p:
                less.append(item)
            else:
                greater.append(item)
        return QuickSort(less)+[p]+QuickSort(greater)

  • 相关阅读:
    二叉树的序列化与反序列化
    寻找重复的子树
    [ABC216H] Random Robots
    Codeforces Round #741 (Div. 2)
    [Gym 102798K] Tree Tweaking
    CF798E Mike and code of a permutation
    CF1149E Election Promises
    [BZOJ 4311] 向量
    CF1268D Invertation in Tournament
    [做题笔记] 浅谈势能线段树在特殊区间问题上的应用
  • 原文地址:https://www.cnblogs.com/joangaga/p/5763756.html
Copyright © 2011-2022 走看看