python-快速排序

 发布日期:2018-09-19 11:24:55  阅读次数:阅读数:271  来源:
# -*- coding: utf-8 -*-
import sys
def quikeSort(m,R,a):#从m到R(这里设置为最后位置),以R作为参考,分成小中大三区
    L = m
    more = R
    less = L-1
    while L<more:
        if a[L]<a[R]:#最后一个作为参考值
            less +=1
            a[less],a[L]=a[L],a[less]####交换方法
            # temp = a[less]
            # a[less]=a[L]
            # a[L]=temp
            L += 1
        elif a[L]>a[R]:
            more -=1
            tem = a[more]
            a[more]=a[L]
            a[L]=tem
        else:
            L +=1
    te = a[more]
    a[more] = a[R]
    a[R] = te
    # sys.setrecursionlimit(10000000)#手动设置递归调用深度,最好是优化自己的代码
    # quikeSort(m, less+1, a)
    # quikeSort(more, R, a)
    return a#等于区的位置

if __name__=="__main__":
    a= [1,5,2,3,6,4,8,9,7,8,5,25,2,7,6]
    print("原列表为:%s" %a)
    quikeSort(3,14,a)
    print("新列表为:%s" %a)
#     # print a
#     del a[2]#删除元素
#     b = a
#     print ("b为:      %s" %b)
# ######################################交换
#     a=[1, 5, 3, 4, 2, 5, 6, 6, 7, 25, 9, 7, 8, 8, 5,8]
#     b=[1, 5, 2, 3, 6, 4, 8, 9, 7, 8, 5, 25, 2, 7, 6]
#     a,b=b,a
#     print a
#     print b
#     a[0], a[1] = a[1], a[0]
#     print a
#     print a[0],a[1]
# ##################################################



如果您有好的新闻与建议,欢迎点击文章投稿

    发表评论

    电子邮件地址不会被公开。

  • 内容

  • 网名