Record

机会是留给有准备的人

冒泡排序之golang实现

    
    func main()  {
    
        var arr = []int{5,10, 6, 9, 3, 7, 1, 4, 2, 8}
    
        leftBubbleSort(arr)
    
        //rightBubbleSort(arr)
    
    }
    
    //从左边开始排,先排好最小的数
    func leftBubbleSort(arr []int) {
        
        for i := 0; i < len(arr)-1; i++ {
    
            //加i 左边已排好的不需要再比较,减少循环次数
            for j := i + 1; j < len(arr); j++ {
    
                if arr[i] > arr[j] {
    
                    arr[i], arr[j] = arr[j], arr[i]
    
                }
                fmt.Println("i=", i, ", j=", j, arr)
                
            }
    
        }
    }
    
    //从右边开始排,先排好最大的数 
    func rightBubbleSort(arr []int) {
        
        for i:=0;i<len(arr);i++ {
    
            //减i 右边已排好的不需要再比较,减少循环次数
            for j:=0;j<len(arr)-i-1;j++ {
                if arr[j] > arr[j+1] {
                    arr[j], arr[j+1] = arr[j+1], arr[j]
                }
                fmt.Println("i=",i,", j=",j, arr)
                
            }
        }
        
    }