Python实现快速排序的方法详解

  

本文实例讲述了Python实现快速排序的方法。分享给大家供大家参考,具体如下:

  

说起快排的Python实现,首先谈一下,快速排序的思路:

  

1,取一个参考值放到列表中间,初次排序后,让左侧的值都比他小,右侧的值,都比他大。

  

2,分别对左侧和右侧的部分递归第1步的操作

  

<>强实现思路:

  
      <李>两个指针左、右分别指向列表的第一个元素和最后一个元素,然后取一个参考值,默认为第一个列表的第一个元素[0]名单,称为K   <李>然后左指向的值先和参考K值进行比较,若列表(左)小于或等于K值,离开就一直向右移动,左+ 1,直到移动到大于K值的地方,停住李   <李>右指向的值和参考K值进行比较,若列表(右)大于K值,正确的就一直向左移动,右一,直到移动到小于K值的地方,停住李   <李>此时,左和右若还没有相遇,即左还小于正确,则二者指向的值互换李   <李>若已经相遇则说明,第一次排序已经完成,将列表[右]与[0]的值进行互换,进行之后的递归李   
  

<强>编程实现:

        #快排的主函数,传入参数为一个列表,左右两端的下标   def快速排序(列表、低、高):   如果比高;低:   #传入参数,通过分区函数,获取k下标值   k=分区(列表、低、高)   #递归排序列表k下标左侧的列的表   快速排序(列表、低k - 1)   #递归排序列表k下标右侧的列的表   快速排序(列表,k + 1,高)   def分区(列表、低、高):   左=低   正确的=高   #将最左侧的值赋值给参考值k   k=列表(低)   #当离开下标,小于权利下标的情况下,此时判断二者移动是否相交,若未相交,则一直循环   而左& lt;正确的:   #当左对应的值小于k参考值,就一直向右移动   当列表(左)& lt;=k:   左+=1   #当正确的对应的值大于k参考值,就一直向左移动   列表(右)比;凯西:   右=- 1   #若移动完,二者仍未相遇则交换下标对应的值   如果左& lt;正确的:   列表(左),[右]=[右]列表,列表(左)   #若移动完,已经相遇,则交换正确的对应的值和参考值   列表(低)=(右)   列表[右]=k   #返回k值   返回正确的   list_demo=[6、1、2、7、9、3、4、5、10、8]   打印(list_demo)   快速排序(list_demo 0 9)   打印(list_demo)      之前      

运行结果:

  
  

[6、1、2、7、9、3、4、5、10、8]
  (1,2,3,4,5,6,7,8,9,10)

     

  http://tools.jb51.net/aideddesign/paixu_ys

  

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python列表(列表)操作技巧总结》,《Python编码操作技巧总结》,《Python函数使用技巧总结》,《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

  

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

Python实现快速排序的方法详解