氣泡排序:一次冒泡過程,只能把一個元素放到正確位置。實現:相鄰的兩個元素比較一下,如果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-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 協議》,轉載必須註明作者和本文連結