流程思路
Java写法
import java.util.Arrays;
public class Reverse {
public static void main(String[] args) {
int[] data = new int[]{1,2,3,4,5,6,7,8,9};
for(int i=0;i<data.length/2;i++)
{
int temp = data[i];
data[i] = data[data.length-1-i];
data[data.length-1-i] = temp;
}
//打印数组方法1,数组toString:
System.out.print("打印数组方法1,数组toString:");
System.out.println(Arrays.toString(data));
//打印数组方法2,普通for循环:
System.out.print("打印数组方法2,普通for循环:");
for (int i = 0; i <data.length ; i++) {
System.out.print(data[i] + " ");
}
System.out.println();
//打印数组方法3,增强for循环:
System.out.print("打印数组方法3,增强for循环:");
for(int k:data){
System.out.print(k + " ");
}
}
}
Java写法验证结果
JavaScript写法
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>toReverse</title>
</head>
<body>
<script type="text/javascript">
function toReverse(data){
for(var i = 0;i<data.length/2;i++){
var temp = data[i];
data[i] = data[data.length-1-i]
data[data.length-1-i] = temp;
}
return data;
}
console.log(toReverse([1,2,3,4,5,6,7,8,9]));
</script>
</body>
</html>
JavaScript验证结果
小结
反转数组主要是关于数字位置的交换,在一开始因为反转数组的特殊性:基于中间位置,将左右两边的位置进行交换。因此我们可以确定它的循环次数就是数组长度的一半,即将中间位置以左的元素遍历出来,再找中间位置以右的元素进行交换。