golang之冒泡排序算法

废话不多说,直接上代码:

package main

import (
    "fmt"
)

func main() {
    var array = [8]int{3, 5, 2, 89, 65, 65, 887, 345}
    length := len(array)
    for i := 0; i < length-1; i++ {
        for j := 0; j < length-i-1; j++ {
            if array[j] > array[j+1] {
                array[j], array[j+1] = array[j+1], array[j]
            }
        }
    }
    fmt.Println(array)
}

流程简析(以升序排序为例):

每次都从第一个元素开始,比较和后一个元素的大小关系,如果后一个元素比前一个元素小,就交换这两个元素的位置,然后让j加1,和上流程一样继续比较j和j+1的元素大小关系直到最后,第一个完整轮回下来就得到了最大的元素放在了最后的数组位置;第二个轮回和第一个一样只是少比较了一次。。。

猜你喜欢

转载自blog.csdn.net/phpduang/article/details/81431561