【C语言】数组的逆置与冒泡排序的实现

数组逆置

数组逆置是一类非常常见的问题,我们要对一个数组的元素进行逆置,最重要的点是中心点与指针。

首先我们先初始化一个数组a[].

int a[] = { 0,1,2,3,4,5,6,7,8,9 };

通过sizeof函数我们可以算出数组长度为10。此时我们的主要任务就是寻找数组元素的中心点sz/2,并且交换a[0]与a[sz-1],sz-1的原因是数组下标是从0开始的,所以下标为0-9。

接下来我们需要写交换函数,交换是一个非常常见的引入第三变量交换代码

int reverse(int a[], int sz)
{
    int i = 0;
    for (i = 0; i < sz / 2; i++)
    {
        int tmp = a[i];
        a[i] = a[sz - 1 - i];
        a[sz - 1 - i] = tmp;
    }
    for (i = 0; i < sz; i++)
    {
        printf("%d ", a[i]);
    }
}

在这里着重解释一下为什么交换的时侯要用到a[sz-1-i],这是因为我们交换完第一组后,就用第二个元素和倒数第二个元素来交换,而不是第二个元素和最后一个元素来交换,-i就是相当于元素向前移动一位。

最后我们使用一个for循

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值