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

     1 def quickSort(arr, left=None, right=None):
     2     left = 0 if not isinstance(left, (int, float)) else left#如果left不属于int和float范围,那么left=0,属于就还是原来的值
     3     right = len(arr)-1 if not isinstance(right, (int, float)) else right
     4     if left < right:
     5         partitionIndex = partition(arr, left, right)#找到第一次 分成左边右边元素的 界限
     6         quickSort(arr, left, partitionIndex-1)#然后排 左边的元素,按照同样的方法
     7         quickSort(arr, partitionIndex+1, right)
     8     return arr
     9 
    10 def partition(arr, left, right):
    11     pivot = left#pivot是 基准,用来把大于 和小于基准的数隔开, 通常选择最左边的元素
    12     index = pivot+1
    13     i = index
    14     while i <= right:
    15         if arr[i] < arr[pivot]:#如果碰到比基准小的,那么需要换位置
    16             swap(arr, i, index)#把下标为i的元素 和下标为index的元素对调
    17             index+=1#index为需要确定的位置
    18         i+=1
    19     swap(arr, pivot, index-1)#最后再把基准和 找到的最后一个小于基准的数换个位置,那么基准所在位置就是 小的大的 分隔线
    20     return index-1
    21 
    22 def swap(arr, i, j):
    23     arr[i], arr[j] = arr[j], arr[i]
  • 相关阅读:
    淘宝---侧边栏信息展示效果
    微信小程序-video详解
    图片边框解决方案
    微信小程序-scroll-view隐藏滚动条
    jdk在windows中的配置
    Java 进制转换
    关于编程的思考
    深入解析String#intern
    String & StringBuilder & StringBuffer
    程序员分类
  • 原文地址:https://www.cnblogs.com/letianpaiai/p/13866096.html
Copyright © 2011-2022 走看看