题目:
设计一个高效算法,将顺序表L的所有元素逆置,要求算法的空间复杂度为O(1)
算法思想:
扫描顺序表L的前半部分元素L.data[i] (0<=i<L.length/2),将其与后半部分的对应元素L.data[L.length-1-i]进行交换。
代码:
void Reverse(Sqlist &L) {
ElemType temp; //辅助变量
//交换L.data[i]与L.data[L.length-1-i]
for (int i = 0; i < L.length / 2; i++) {
temp = L.data[i];
L.data[i] = L.data[L.length - 1 - i];
L.data[L.length - 1 - i] = temp;
}
}
结语
如果你喜欢我写的博客,欢迎来踩我个人搭建的博客~
ChengNing’s Blog