现在的位置: 首页 > 综合 > 正文

Python实现快速排序

2017年10月13日 ⁄ 综合 ⁄ 共 632字 ⁄ 字号 评论关闭

用python实现快速排序算法

       

 #! /usr/bin/env python
        #coding=utf-8
        #authur: CH
        #e-mail: chuanwusun@gmail.com
        #description: 快速排序。


        def QUICKSORT(Arr,p,r):
          if p<r:
            q = PARTITION(Arr,p,r)
            QUICKSORT(Arr,p,q-1)
            QUICKSORT(Arr,q+1,r)

        def PARTITION(Arr,p,r):
          i=p
          j=p
          k=0
          while j<r:
            if Arr[j]<=Arr[r]:
              k=Arr[i]
              Arr[i]=Arr[j]
              Arr[j]=k
              i=i+1
              j=j+1
              printinfo(Arr)
            if Arr[j]>Arr[r]:
              j=j+1
          k=Arr[i]
          Arr[i]=Arr[j]
          Arr[j]=k
          return i

        def printinfo(Arr):
          i=0
          print Arr[0],Arr[1],Arr[2],Arr[3],Arr[4],Arr[5],Arr[6],Arr[7]

        if __name__ == '__main__':
          file=open("foo.txt")
          line=file.readline()
          tmp=line.split()
          tmp=map(int, tmp)
          QUICKSORT(tmp,0,7)
          printinfo(tmp)


测试数据如下,放在foo.txt里:      

          2 8 7 1 3 5 6 4

个人博客: http://feigongkai.com

抱歉!评论已关闭.