funcmain(){
s :=[]int{5,3,4,8,2}for i :=0; i <len(s)-1; i++{for j :=0; j <len(s)-1-i; j++{if s[j]> s[j+1]{
s[j], s[j+1]= s[j+1], s[j]}}}
fmt.Println(s)}
优化,如果一组数据经过一次循环没有发生两两换位如(1,2,3,4,5)则可以跳出循环 代码实例:
funcmain(){
s :=[]int{5,3,4,8,2}for i :=0; i <len(s)-1; i++{
flag :=truefor j :=0; j <len(s)-1-i; j++{if s[j]> s[j+1]{
s[j], s[j+1]= s[j+1], s[j]//如果出现两两换位说明排序没有结束,需要继续执行后续循环
flag =false}}if flag {break}}
fmt.Println(s)}