zoukankan      html  css  js  c++  java
  • golang实现快排

    // QuickSort
    package main
    
    import (
    	"fmt"
    	"math/rand"
    	"time"
    )
    
    func swap(a int, b int) (int, int) {
    	return b, a
    }
    
    func partition(aris []int, begin int, end int) int {
    	pvalue := aris[begin]
    	i := begin
    	j := begin + 1
    	for j < end {
    		if aris[j] < pvalue {
    			i++
    			aris[i], aris[j] = swap(aris[i], aris[j])
    		}
    		j++
    	}
    	aris[i], aris[begin] = swap(aris[i], aris[begin])
    	return i
    }
    
    func quick_sort(aris []int, begin int, end int) {
    	if begin+1 < end {
    		mid := partition(aris, begin, end)
    		quick_sort(aris, begin, mid)
    		quick_sort(aris, mid+1, end)
    	}
    }
    
    func rand_array(aris []int, lent int) {
    	for i := 0; i < lent; i++ {
    		r := rand.New(rand.NewSource(time.Now().UnixNano()))
    		aris[i] = r.Intn(1000)
    	}
    }
    
    func main() {
    	intas := []int{0, 0, 0, 0, 7, 20, 4, 77, 1, 22}
    	rand_array(intas, 10)
    	fmt.Println(intas)
    	quick_sort(intas, 0, 10)
    	fmt.Println(intas)
    }
    出自datakv
  • 相关阅读:
    Swift
    Swift
    Swift
    Swift
    Swift
    Swift
    Swift
    C++生产和使用的临时对象
    RecyclerView0基于使用
    Docker创建MySQL集装箱
  • 原文地址:https://www.cnblogs.com/datakv/p/5734470.html
Copyright © 2011-2022 走看看