内外两层的控制:
def bubble_sort(alist):
# 冒泡排序
n = len(alist)
# 外层循环控制走多少趟:最后一个数到达末尾,无需再进行比较
for j in range(n-1):
# 内层循环控制每趟比较多少次:已经排好序的数不需再进行比较(j个)
for i in range(0, n-j-1):
# 升序排列
if alist[i] > alist[i+1]:
alist[i], alist[i+1] = alist[i+1], alist[i]
return alist
def bubble_sort1(alist):
n = len(alist)
for j in range(len(alist)-1, 0 ,-1):
for i in range(j):
# 升序排列
if alist[i] > alist[i+1]:
alist[i], alist[i+1] = alist[i+1], alist[i]
return alist
package main
import "fmt"
//冒泡算法
func bubble(numArray []int) []int{ //参数和返回值都要声明类型
n := len(numArray)
for i := 0; i < n; i++{
for j :=0; j<n-i-1;j++{ //比较i轮后,i个数固定,不需要再进行比较
if numArray[j] > numArray[j+1]{ //升序排列
numArray[j], numArray[j+1] = numArray[j+1], numArray[j] //相邻元素互换
}
}
}
return numArray
}
func main(){
//短声明和var声明不能同时存在
//var numArray = [...]int{1, 8, 9, 7, 3, 5, 2, 6, 4}
bubbleArray := []int{1,8,9,7,3,5,2,6,4}
fmt.Println("Before:", bubbleArray)
bubble(bubbleArray)
fmt.Println("After:", bubbleArray)
}