go 实现冒泡排序和插入排序 
                                                    
                        
                    
                    
  
                    
                    冒泡排序:一次冒泡过程,只能把一个元素放到正确位置。实现:相邻的两个元素比较一下,如果s[i]>s[i+1],替换位置。
最多需要冒泡n次;
func Buble(s []int) {
    l := len(s)
    if l < 2{
        return
    }
    for i:=0; i<l; i++{
        flag := true
        for j:=0; j<l-i-1; j++ {
            if s[j]>s[j+1] {
                s[j],s[j+1] = s[j+1],s[j]
                flag = false
            }
        }
        if flag {
            break
        }
    }
    return
}
插入排序:就是把数据分成两部分,左边部分为排序好的,右边部分为未排序的。每次从右边取出一个元素s[j],和左边排序好的元素依次比较。然后合适的地方插入。
func InsertSort(s []int) {
    len := len(s)
    if len < 2 {
        return
    }
    for i:=1; i<len; i++{
        j := i-1
        value := s[i]
        for ; j>=0; j--{
            if s[j] > value {
                s[j+1] = s[j] //右移一位
            }else{
                break //只能跳出一层
            }
        }
        s[j+1] = value
    }
    return
}
go循环中,break只能跳出一层循环。
本作品采用《CC 协议》,转载必须注明作者和本文链接
          
          
          
                关于 LearnKu
              
                    
                    
                    
 
推荐文章: