python快速查找算法应用实例

1057次阅读  |  发布于5年以前

本文实例讲述了Python快速查找算法的应用,分享给大家供大家参考。

具体实现方法如下:


    import random
    def partition(list_object,start,end):
      random_choice = start
      #random.choice(range(start,end+1))
      #把这里的start改成random()效率会更高些
      x = list_object[random_choice]
      i = start
      j = end
      while True:
        while list_object[i] < x and i < end:
          i += 1
        while list_object[j] > x:
          j -= 1
        if i >= j:
          break
        list_object[i],list_object[j] = list_object[j],list_object[i]
      print list_object
      #list_object[random_choice] = list_object[j]
      #list_object[j] = random_choice
      return j

    def quick_sort(list_object,start,end):
      if start < end:
        temp = partition(list_object,start,end)
        quick_sort(list_object,start,temp-1)
        quick_sort(list_object,temp + 1 ,end)

    a_list = [69,65,90,37,92,6,28,54]
    quick_sort(a_list,0,7)
    print a_list

程序测试环境为Python2.7.6

输出结果如下:


    [54, 65, 28, 37, 6, 69, 92, 90]
    [6, 37, 28, 54, 65, 69, 92, 90]
    [6, 37, 28, 54, 65, 69, 92, 90]
    [6, 28, 37, 54, 65, 69, 92, 90]
    [6, 28, 37, 54, 65, 69, 90, 92]
    [6, 28, 37, 54, 65, 69, 90, 92]

希望本文所述对大家的Python程序设计有所帮助。

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8