循环嵌套和选择排序(通过for 实现算法)
循环嵌套
双层循环 打印矩阵
1 //打印一个10*10的 ** 2 package main 3 4 import "fmt" 5 6 func main(){ 7 8 //把第一个for循环,看成一行语句,然后在打印10次 一行**** 就是矩阵了 9 for j :=0;j<10;j++{ 10 11 //第一个循环是打印出了一行* * * * * * * * * * 12 for i:=0;i<10;i++{ 13 fmt.Print("* ") //Print是不换行. 14 } 15 fmt.Println() 16 17 } 18 19 } 20 /* 21 * * * * * * * * * * 22 * * * * * * * * * * 23 * * * * * * * * * * 24 * * * * * * * * * * 25 * * * * * * * * * * 26 * * * * * * * * * * 27 * * * * * * * * * * 28 */
选择排序算法
/* 选择排序算法,
就是把乱序的数字,进行从大到小的顺序排列起来。 实现逻辑是 拿第一位数字和后面的数字,进行逐个比较。 如果比自己大就互换位置,如果不大,不做任何处理。 然后在拿第二位数字,同上进行比较互换。 */
1 package main 2 3 import "fmt" 4 5 func main() { 6 7 s := []int{5, 1, 2, 3, 4, 6, 7, 8, 9} 8 9 //在这i 定义初始为0了,循环len(s)-1次的 内部那个循环内容。 这个循环的目的是 循环len(s)次循环内的内容。 10 for i := 0; i < len(s)-1; i++ { 11 12 //遍历第i+1位到末尾,如果某一位比第i位大,就进行互换。 这个循环目的是进行互换。 13 for j := i + 1; j < len(s); j++ { 14 if s[j] > s[i] { 15 s[i], s[j] = s[j], s[i] 16 } 17 } 18 } 19 20 fmt.Println(s) 21 }