zoukankan      html  css  js  c++  java
  • 算法

    https://blog.csdn.net/zz709196484/article/details/78747290

    python 快速排序

     1 def QuickSort(myList,start,end):
     2     #判断 开始的下标是否 < 结束的下标,如果为false,直接返回
     3     if start < end:
     4         i,j = start,end
     5         #设置基准数,这时已经腾出了一个坑位i
     6         base = myList[i]
     7 
     8         while i < j:
     9             #如果列表后边的数,比基准数大或相等,则前移一位直到有比基准数小的数出现
    10             while (i < j) and (myList[j] >= base):
    11                 j = j - 1
    12 
    13             #如找到,则把第j个元素赋值给第i个元素,
    14             if i < j: # 刚好找到了比基准数小的
    15                 myList[i] = myList[j] 
    16                 i = i + 1 # myList[i] 已经比基准数了,所以前区不需要比较第i个数了,所以i向后移一位
    17 
    18             #同样的方式比较前区
    19             while (i < j) and (myList[i] <= base):
    20                 i = i + 1
    21             if i < j: # 刚好找到了比基准数大的数
    22                 myList[j] = myList[i]
    23                 j = j - 1 # myList[j] 已经比基准数了,所以后区不需要比较第j个数了,所以j往前移一位
    24 
    25         #做完第一轮比较之后,列表被分成了前后两个区,并且i=j,需要将这个数设置回base
    26         myList[i] = base
    27 
    28         #递归前后区
    29         QuickSort(myList, start, i - 1)
    30         QuickSort(myList, i + 1, end)
    31     return myList
    32 
    33 
    34 myList = [49,38,65,97,76,13,27,49]
    35 print("Quick Sort: ")
    36 QuickSort(myList,0,len(myList)-1)
    37 print(myList)
  • 相关阅读:
    NYOJ 132(最长回文子串)
    NYOJ 148(斐数求余)
    NYOJ 97
    NYOJ 206
    NYOJ 520(最大素因子的序数)
    数据库大型应用解决方案总结(转)
    SQL好的写法(转)
    WebService如何调试及测试工具
    刪除windows服務方法
    GhostDoc(注释生成工具)使用方法
  • 原文地址:https://www.cnblogs.com/linkenpark/p/5539967.html
Copyright © 2011-2022 走看看