想实现一个排序,for循环里的语句好像一直有问题实现不了,大神看看哪里有问题。萌新请轻喷

weijin · · 1016 次点击
zzzzzzzzzzzzyyyyyyyyyyyyyyy
#2
更多评论
package main import "fmt" func main() { var s = []int{8,1,7,5,49} s[0], s[1] = s[1], s[0] fmt.Println(s) for y := len(s); y >= 0; y-- { for z := 0; z < y-1; z++ { if(s[z] > s[z+1]) { s[z], s[z+1] = s[z+1], s[z] } } } fmt.Println(s) }
#1
package main import "fmt" func main() { s := []int{8, 1, 7, 5, 4, 9} fmt.Println(s) for i := 1; i < len(s); i++ { fmt.Printf("第%d轮: -> \n", i) for j := i; j > 0; j-- { if s[j] < s[j-1] { fmt.Printf("交换%d和%d ", s[j], s[j-1]) // swap(&s[j], &s[j-1]) s[j], s[j-1] = swap2(s[j], s[j-1]) } else { fmt.Printf("无变化 ") } fmt.Println(s) } fmt.Printf(" <- 第%d轮\n\n", i) } } func swap(a *int, b *int) { *a, *b = *b, *a } func swap2(a int, b int) (m int, n int) { return b, a }
#3