所以,我有4个元素的数组,必须交换值(见图)。第一个索引应该转到第二个索引,第二个索引应该转到第三个索引,依此类推。现在,我在Java中执行了类似的操作:
public class ArrSwap
private static Scanner SC= new Scanner(System.in);
public static void main(String[] args){
int[] arr= new int[4];
for(int i=0;i<arr.length;i++){
System.out.print(String.format("Enter %d number: ",i+1));
arr[i]= SC.nextInt();
}
int temp= 0;
for(int j= 0;j<3;j++){
for(int i= 0;i<arr.length-1;i++){
temp= arr[i+1];
arr[i+1]= arr[i];
arr[i]= temp;
}
}
for(int x: arr) {
System.out.println(x);
}
现在,我知道它不是很直观:3但这是我当时能想到的最好的。现在,我该如何使这个更通用?我该如何改进?这种排序背后的逻辑是什么?