数组反转的C++实现

目录

  • C++实现部分
  • 说明

C++实现部分

//数组长度计算,接收数组首元素地址,返回数组长度
template<class T>
int length(T& arr)
{return sizeof(arr)/sizeof(arr[0]);//数组总大小除以一个元素的大小即为数组长度
}
//数组倒序,接收数组首元素地址,无返回值
void reverse(int * a,int n)
{//第一种倒序方法/*for(int j=0;j//第二种倒序方法/*for(int i=0;i//第三种方法int b[n];for(int i=0;i<n;i++){b[n-i-1]=a[i];}for(int i=0;i<n;i++){a[i]=b[i];}}
//测试函数
void test()
{//先定义一个数组static int a[10] = {0,1,2,3,4,5,6,7,8,9};for(int i=0;i<10;i++){printf("%d ",a[i]);}printf("\n");//a:数组第一个元素地址//length(a):数组的长度reverse(a, length(a));//数组名字作为形参时,实际上传递的是首元素的地址for(int i=0;i<10;i++){printf("%d ",a[i]);}printf("\n");
}
int main(int argc,char **argv)
{test();return 0;
}

说明

第一种类似于冒泡排序,不同之处在于无需判断相邻两个元素的大小,直接交换他们的值即可。
第二种方法直接依次交换首尾两元素,每次交换后,首尾枢轴分别向中心靠拢一位
第三种方法将数组元素插入反向遍历的新数组里,在将新数组正向赋值到旧数组里即可


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部