zoukankan      html  css  js  c++  java
  • python sort

    快速排序

     //理解参考go的快速排序

    def sort(listv,left,right):
        #print listv
        i,j=left,right
        temp=listv[left]
        p=left
        while i<=j:
            #print j,p
            while j>=p and listv[j]>=temp :
                j-=1
            if j>=p:
                listv[p]=listv[j]
                p=j
            if listv[i]<=temp and i<=p:
                i+=1
            if i<=p:
                listv[p]=listv[i]
                p=i
        listv[p]=temp
        if p-left >1:
            sort(listv,left,p-1)
        if right-p>1:
            sort(listv,p+1,right)
        #重要
        return listv   
    
    
    
    
    z=[20, 21, 1, 3, 4, 25, 7, 8, 26, 27]
    lenv=len(z)
    print sort(z,0,lenv-1)

    result

    huzh@DESKTOP-LFIDO1U ~/code/python/python2
    $ python quc.py
    [1, 3, 4, 7, 8, 20, 21, 25, 26, 27]

    选择排序

    def sort(lst):
        if len(lst)<2:
            print "lst <2"
            return
        for i in range (1,len(lst)):
            print "iiiiii",i
            j=i
            temp=lst[i]
            #temp不能用lst[i]
            while lst[j-1]>temp :
                lst[j]=lst[j-1]
                #防止访问越界
                if j>0:
                    j-=1
                else:
                    #增加跳出条件
                    break
            lst[j]=temp
    
        print  lst
    
    
    z=[20,21,2,3,25,7,8,41,42]
    sort(z)
    View Code

    huzh@DESKTOP-LFIDO1U ~/code/python/python2
    $ python insert.py
    [2, 3, 7, 8, 20, 21, 25, 41, 42]

  • 相关阅读:
    springboot基本注解
    Mybatis之简单注解
    java再次学习
    在线html编辑器
    分享
    cyberduck的SSH登录
    ie67的冷知识
    css特效
    小程序分享
    css特效博客
  • 原文地址:https://www.cnblogs.com/eiguleo/p/10308739.html
Copyright © 2011-2022 走看看