zoukankan      html  css  js  c++  java
  • go语言算法

    1.冒泡排序算法

    func bsort(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]
    			}
    		}
    	}
    
    }
    func main()  {
        a :=[]int{1,9,5,7,3,8,23,0}
    
       bsort(a)
       fmt.Println(a)
    }
    

    2.选择排序算法

    func ssort(n []int)  {
    	for i:=0;i<len(n);i++{
    		//记住下标
    		var min int = i
    		for j:=i+1;j<len(n);j++{
    			if n[min]>n[j]{
    				 min = j
    			}
    			n[i],n[min] = n[min],n[i]
    		}
    	}
    }
    func main()  {
        a :=[]int{1,9,5,7,3,8,23,0}
    
        ssort(a)
        fmt.Println(a)
    }
    

    3.插入排序算法

    //插入排序
    func isort(n []int)  {
    	for i:=1;i<len(n);i++{
    		for j:=i;j>0;j--{
    			if n[j]>n[j-1]{
    				break
    			}else{
    				n[j],n[j-1] = n[j-1],n[j]
    			}
    		}
    	}
    }
    
    func main()  {
        a :=[]int{1,9,5,7,3,8,23,0}
        isort(a)
        fmt.Println(a)
    }
    

    4.快排算法

    //快排
    func qsort(a []int,left,right int)  {
    	if left >=right{
    		return
    	}
    	val :=a[left]
    	k := left
    	for i :=left+1;i<=right;i++{
    		if a[i]<val{
    			a[k] =a[i]
    			a[i] =a[k+1]
    			k++
    		}
    	}
    	a[k] = val
    	qsort(a,left,k-1)
    	qsort(a,k+1,right)
    }
    func main()  {
    	//定义一个列表,列表是值类型,可以通过切片转成引用类型
    	b :=[...]int{8,7,5,4,10,2,9}
    	qsort(b[:],0,len(b)-1)
    	fmt.Println(b)
    }
    
  • 相关阅读:
    shell脚本100例、练习使用
    shell基础编程
    mysql基础理论知识
    Docker 基础
    python基础之类(面向对象编程)
    python基础之函数
    python基础之认知及编码
    python基础之数据类型
    python基础之注意事项
    1.linux使用基础
  • 原文地址:https://www.cnblogs.com/mqhpy/p/13496665.html
Copyright © 2011-2022 走看看