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)

  • 相关阅读:
    白鸦:互联网就是社区,液态的社区
    「芭比娃娃.com」
    做几个经营「人」的小网站,速速卖给大公司?
    关于工作与生活来自前hp总裁孙振耀
    新网站上线,酷狗狗 www.coogogo.com
    中国地摊联盟群组
    discuz!nt论坛搬迁后出错,提示:对象名 'dnt_templates' 无效
    时光.旅人
    const和readonly
    html.partial的一个bug?
  • 原文地址:https://www.cnblogs.com/joangaga/p/5763756.html
Copyright © 2011-2022 走看看