zoukankan      html  css  js  c++  java
  • 快速排序

     一、快排算法 
        快速排序,是一个基于递归的算法,其核心思想如下:对于列表,选取一个轴值(一般选取最后一个元素),把列表中,小于该轴值的排在左边,大于该轴值的排在右边,这样,轴值在列表中的位置就确定了。由此衍生出了轴值的左子列表,以及右子列表,递归的对于左子列表以及右子列表使用上述的排序算法,直到子列表中只有一个元素。
    代码实现:
    def qSort(lista, sIndex, eIndex):
    if sIndex >= eIndex:
    return
    flag = lista[eIndex]
    i=sIndex
    for j in range(sIndex,eIndex):
    if lista[j] > flag:
    pass
    else:
    lista[i], lista[j] = lista[j], lista[i]
    i+=1
    lista[eIndex], lista[i] = lista[i], lista[eIndex]
    middle = i
    qSort(lista, sIndex, middle-1)
    qSort(lista, middle+1, eIndex)
    print lista

    if __name__ == '__main__':
    x=[343,3454,4,5,7]
    qSort(x, 0, len(x)-1)

    二、时间复杂度
    O(nlogn)

  • 相关阅读:
    erl_0012 timer:tc 测试模块函数调用运行耗时
    erl_0011 erlang 定时器相关
    erl0010
    erl0009
    erl0008
    erl0007
    erl0006
    erl0005
    开开心心过生活、踏踏实实做技术
    Android-理解Intent
  • 原文地址:https://www.cnblogs.com/emily-qin/p/7170696.html
Copyright © 2011-2022 走看看