Java教程

排序算法-快排

本文主要是介绍排序算法-快排,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

 1 def quickSort(arr,L,R):
 2     left = L
 3     right = R
 4     #结束条件当L>=R时即结束
 5     if L>=R:
 6         return arr
 7     stand = arr[left]
 8     #第一次循环晚,left 和 right 由里面的right-=1 和 left+=1 不会无限循环
 9     while right>left:
10         #找到
11         while right>left and arr[right]>=stand:
12             right-=1
13         arr[left]=arr[right]
14         while right>left and arr[left]<stand:
15             left+=1
16         arr[right]=arr[left]
17     arr[left]=stand
18     quickSort(arr,L,left-1)
19     quickSort(arr,left+1,R)
20     return arr

每次选举最左侧的值作为基准

从数组尾部开始查询到第一个小于基准的值,将其复制给最左侧(此次遍历基准值的位置),然后立刻从左侧开始遍历,寻找左侧第一个大于基准值的值,然后将值赋值给最右侧,循环

直到本循环中左侧和右侧指针相遇,将基准值插入

对基准值左右部分递归

 

这篇关于排序算法-快排的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!