废话不多说,直接上代码:
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的元素大小关系直到最后,第一个完整轮回下来就得到了最大的元素放在了最后的数组位置;第二个轮回和第一个一样只是少比较了一次。。。