先定义一个要排序的数组
arr:=[7]int{4,1,5,2,3,6,7}
实现排序的函数
//left 数组最左边 right 数组最右边 func sort(left, right int, arr *[7]int) {
快速排序 先确定一个关键字。这里的关键字可以是数组任意一个
这里我设关键字下标为key, 是排序数组第一个数。
//关键字下标 key:=left
代码如下
找到 在mid左边 且arr[left] > arr[mid] 的对应left
找到 在mid右边 且arr[right] < arr[mid] 的对应right
对找到的left 和 right 进行判断
在left == key || right == key 前提下
根据找到的下标 left或right 进行与关键字的互换
注意 关键字互换后要更改 关键字的下标
函数退出条件:
//判断退出条件 if left<=l&&right>=r{ return }
以key 为分界线,对剩下的数排序 用递归方法
结果:
总代码如下: