快排的实现方式多种多样,如下是其中的一种方法。
一般不会手撕快排:
C++直接调用sort() + lambda表达式就可实现排序;golang调用sort.Ints()或 sort.Slice()+lambda实现排序;C++实现#include
package mainimport "fmt"func partition(nums []int, low, high int) int {pivot := nums[high]i := low-1for j := low; j < high; j++ {if nums[j] <= pivot {i++nums[i], nums[j] = nums[j], nums[i]}}nums[i+1], nums[high] = nums[high], nums[i+1]return i+1}func quickSort(nums []int, low, high int) {if low < high {pivotIndex := partition(nums, low, high)quickSort(nums, low, pivotIndex-1)quickSort(nums, pivotIndex+1, high)}}func main() {nums := []int{3, 6, 8, 10, 1, 2, 1}quickSort(nums, 0, len(nums) - 1)for _, v := range nums {fmt.Printf("%d\t", v)}fmt.Println()}
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。