1)题目:
设置一个高效算法,将顺序表L的所有元素逆置,要求算法的空间复杂度为O(1)
2)思路:
头尾元素依次交换
3)代码:
源码中使用到的ArrrayList,是调用的是自己实现的ArrayList,自己实现的ArrayList源码地址:https://blog.youkuaiyun.com/u012441545/article/details/89667486
package com.sam.datastruct.arrayList;
public class P2_02 {
public void function(ArrayList<Integer> list){
if (list == null || list.size() <= 2) {
return;
}
Integer tmp;
for(int i = 0; i < list.size() / 2; ++i){
tmp = list.get(i);//引用的是自己实现的ArrayList中的方法
list.update(list.get(list.size() - 1 - i), i);//引用的是自己实现的ArrayList中的方法
list.update(tmp, list.size() - 1 - i);//引用的是自己实现的ArrayList中的方法
}
}
public static void main(String[] args) {
P2_02 p = new P2_02();
ArrayList<Integer> list = new ArrayList<>();
list.initacs(10);
p.function(list);
System.out.println(list.toString());
}
}