GoLang 的冒泡快速插入排序

package main

import (
	"fmt"
)

func maopao(a []int) {

    for i:= 0;i< len(a); i++ {
        for j:= 1; j< len(a)-i; j++ {
	    if a[j] < a[j-1] {
		    a[j],a[j-1] = a[j-1],a[j]
	        }
	        }
            }
	    fmt.Println(a)
    }

func charu(a []int) {

	for i:= 1; i<len(a); i++{
		for j:= i; j>0; j--{
			if a[j] > a[j-1] {
				break
			}
			a[j],a[j-1] = a[j-1],a[j]
		}
	}
	fmt.Println(a)
}

func quick(a []int, left, right int) {

	if left >= right{
		return
	}
	val:= a[left]
	k:= left // 确定val所在的位置
	for i:= left+1; i<= right; i++{
		if a[i] < val {
			a[k] = a[i]
			a[i] = a[k+1]
			k++
			fmt.Println(a)
		}
	}
	a[k] = val
	quick(a, left,k-1)
	quick(a, k+1, right)
}


func maopao2(a []int) {

	flag:= true
	vlen:=len(a)
	for i:= 0;i<vlen-1;i++ {
		flag = true
		for j := 0; j<vlen-i-1;j++  {
			if a[j] >a[j+1]{
				a[j],a[j+1] = a[j+1],a[j]
				flag = false
			}
		}
		if flag{
			break
		}
	}
	fmt.Println(a)
}

func main() {

	a:= make([]int,10)
	a = []int{2,5,6,1,8,7,4,3,9,10,7,99,82,64,17}
	//maopao(a)
	//maopao2(a)
	charu(a)
	//quick(a,0,int(len(a)-1))
}


猜你喜欢

转载自blog.csdn.net/zhangyexinaisurui/article/details/80413156