欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 高考 > 【数据序列倒置算法】C++实现任意容器中的数据倒置reverse

【数据序列倒置算法】C++实现任意容器中的数据倒置reverse

2025/9/18 0:54:38 来源:https://blog.csdn.net/qq_42279379/article/details/140361470  浏览:    关键词:【数据序列倒置算法】C++实现任意容器中的数据倒置reverse

1. 算法描述:

数据序列倒置算法】将容器中的数据进行倒置

2. 算法求解步骤:

  • E1(定义两个迭代器):分别指向容器的头部数据和尾部数据
  • E2(判断迭代器大小):如果头部迭代器小于尾部迭代器,算法结束;否则交换两个迭代器的数据,头部迭代器自增,尾部迭代器自减,进入E2

3. C++代码求解:

/*@author @还下着雨ZG
* @brief 将数组中的数据进行倒置
* @param[in] int arr[],待倒置的数组
* @param[in] int iLen, 数组的长度
* @return iRes,整数表示算法成功,负数表示算法执行失败
*/
int sortReverse(int arr[], int iLen)
{if(iLen <= 0){return -1;}if(0 == arr){ return -2;}int *ptrHead = arr;int *ptrRear = arr + iLen - 1;while(ptrHead < ptrRear){int iTmp = *ptrHead;*ptrHead = *ptrRear;*ptrRear = iTmp;++ptrHead;--ptrRear;}return 1;
}

算法优化:避免引入中间变量,从而减少算法的空间复杂度

/*@author @还下着雨ZG
* @brief 将数组中的数据进行倒置
* @param[in] int arr[],待倒置的数组
* @param[in] int iLen, 数组的长度
* @return iRes,整数表示算法成功,负数表示算法执行失败
*/
int sortReverse(int arr[], int iLen)
{if(iLen <= 0){return -1;}if(0 == arr){ return -2;}int *ptrHead = arr;int *ptrRear = arr + iLen - 1;while(ptrHead < ptrRear){*ptrHead = *ptrHead + *ptrRear;*ptrRear= *ptrHead - *ptrRear;*ptrHead = *ptrHead - *ptrRear;++ptrHead;--ptrRear;}return 1;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com