zoukankan      html  css  js  c++  java
  • Golang快速排序算法(切片int)

    代码

    func QuickSort(arr []int) []int {
    	if len(arr) <= 1 {
    		return arr
    	}
    	splitData := arr[0]          //第一个数据
    	low := make([]int, 0, 0)     //比我小的数据
    	height := make([]int, 0, 0)  //比我大的数据
    	mid := make([]int, 0, 0)     //与我一样大的数据
    	mid = append(mid, splitData) //加入一个
    	for i := 1; i < len(arr); i++ {
    		if arr[i] < splitData {
    			low = append(low, arr[i])
    		} else if arr[i] > splitData {
    			height = append(height, arr[i])
    		} else {
    			mid = append(mid, arr[i])
    		}
    	}
    	low, height = QuickSort(low), QuickSort(height)
    	myArr := append(append(low, mid...), height...)
    	return myArr
    }
    

    使用

    func TestQuickSort() {
    	arr := []int{1, 9, 10, 30, 2, 5, 45, 8, 63, 234, 12}
    	fmt.Println(QuickSort(arr))
    }
    

      

  • 相关阅读:
    setsid
    dup
    信号量
    linux标准输入输出
    linux守护进程范例
    c++字符串操作
    浏览器缓存
    bfc
    苹果手机自制铃声
    vue-cli 源码解读
  • 原文地址:https://www.cnblogs.com/zyfeng/p/15698802.html
Copyright © 2011-2022 走看看