思路:比如123,在第一个位置摆放的时候,有3种情况,用一个for循环,第一次找的是1,1就被标记了,在找第二位第三位的时候,1就不可以用了。
再找第二位,剩下2和3,由于1被标记了,只可以找2或者3,先取的是2,取后标记2。
再找第三位,剩下了3,由于12都被标记了,只可以找3,所以直接就是3。
第一个序列123就出来了。由于3只有一种情况,他一次就执行完了。
看到第二位,剩下2和3,2取过了,现在取3,所以最后一位只能取2了。
这样最后两位的变化都已经搞完了。
第一位又可以做文章了。1取过了,这里就取到了2。那相应的,第二位和第三位也就剩下了1和3,也是一样的操作原理。
最后第一位取3,思路十分简单,代码同样也不难。
private void sort(int level) { for (int i = 0; i <