• 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]
  • 相关阅读:
    Kotlin学习系列(三)
    获取Android设备标识符
    Kotlin学习系列(二)
    ijkplayer实现IMediaDataSource
    Fresco添加HTTP请求头
    Kotlin学习系列(一)
    完整的Android MVP开发之旅
    Marshmallow权限使用
    APP设计与开发(ui篇)
    下载Android源码
  • 原文地址:https://www.cnblogs.com/letianpaiai/p/13866096.html
Copyright © 2020-2023  润新知