输入任一有序数组,长度为n,指定中心点【0,n-1】,在现有顺序下,以指定中心重新排列
import java.util.ArrayList;
public class TestCenter {
public static void main(String[] args) {
TestCenter test = new TestCenter();
test.query();
}
private void query() {
// int[] intArray = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int length = 6;
ArrayList<Integer> o = new ArrayList<Integer>();
for (int i = 0; i < length * 3; i++) {
int index = i % length;
o.add(index);
}
printArray(o);
int center = 4;
ArrayList<Integer> to = new ArrayList<Integer>();
int tCenter = length + center;
int start = tCenter - length / 2;
for (int i = 0; i < length; i++) {
to.add(o.get(start + i));
}
printArray(to);
ArrayList<Integer> mo = new ArrayList<Integer>();
for (int i = 0; i < length; i++) {
int detal = i - center;
if (Math.abs(detal) <= ((length - 1) / 2)) {
mo.add(detal);
}else if(detal>0){
int t = detal - (length - 1) / 2 -1 - length/2;
mo.add(t);
}else{
int t = detal + length;
mo.add(t);
}
}
printArray(mo);
}
public void printArray(ArrayList<Integer> o) {
for (Integer i : o) {
System.out.print(i);
}
System.out.println("");
}
}