package main import ( "fmt" ) func main() { num := 0 for { n, _ := fmt.Scan(&num) if n == 0 { break } else { arr := make([]int, num) for i:=0; i<len(arr); i++ { fmt.Scan(&arr[i]) } less := 0 i := 1 for i<num { // 这里假设less都边界为board=(num+1/2+1), //应该可以提前终止判断的,好像不行没有想通 && less<board, 不过两者条件没有必然关系 if arr[i] != arr[less] { less++ arr[i], arr[less] = arr[less], arr[i] i++ } else { i++ } } for i:=0; i<num; i++ { if i==num-1 { fmt.Println(arr[i]) } else { fmt.Printf("%d ", arr[i]) } } } } }