搜索
bottom↓
回复: 7
打印 上一主题 下一主题

请教:C语言编写数组切片求和的快速方法!

[复制链接]

出0入0汤圆

跳转到指定楼层
1
发表于 4 天前 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一个数组;int buff[200];
请问如何高速的对数组进行切片求和?并找出和值对应的最大值的索引?
例如 10个数据为一个切片;
定义:sum[200];
sum[0]=buff[0]...buff[9];
sum[1]=buff[1]...buff[10];
sum[2]=buff[2]...buff[11];
...

对于这种模型,有没有高效处理方法?

谢谢!请教大家!

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

2
 楼主| 发表于 4 天前 | 只看该作者
这是AI的提示:

#include <iostream>

const int SIZE = 200; // 数组大小
const int SLICE_SIZE = 10; // 切片大小

int main() {
    int buff[SIZE]; // 原始数组
    int sum[SIZE - SLICE_SIZE + 1]; // 存储切片和值的数组
    int maxIndex = 0; // 最大和值的索引

    // 假设已经初始化了 buff 数组

    // 计算切片和值
    for (int i = 0; i <= SIZE - SLICE_SIZE; ++i) {
        sum[i] = 0;
        for (int j = 0; j < SLICE_SIZE; ++j) {
            sum[i] += buff[i + j];
        }
    }

    // 找出最大和值的索引
    for (int i = 1; i <= SIZE - SLICE_SIZE; ++i) {
        if (sum[i] > sum[maxIndex]) {
            maxIndex = i;
        }
    }

    // 输出结果
    std::cout << "最大和值的索引为:" << maxIndex << std::endl;
    std::cout << "对应的切片和值为:" << sum[maxIndex] << std::endl;

    return 0;
}

出0入0汤圆

3
 楼主| 发表于 4 天前 | 只看该作者
大家有没有好的意见?谢谢!

出0入57汤圆

4
发表于 4 天前 | 只看该作者
关注一下sum[]的类型是否正确就可以了

出0入442汤圆

5
发表于 4 天前 | 只看该作者
加上后面的,减去前面的

出0入0汤圆

6
 楼主| 发表于 4 天前 | 只看该作者
wye11083 发表于 2024-7-23 12:14
加上后面的,减去前面的
(引用自5楼)

这样应该是速度也很优化

出30入42汤圆

7
发表于 4 天前 | 只看该作者
改成这样:
sum[1] = sum[0] - buff[0] + buff[10];
sum[2] = sum[1] - buff[1] + buff[11];

出0入0汤圆

8
 楼主| 发表于 4 天前 | 只看该作者
PPS 发表于 2024-7-23 12:18
改成这样:
sum[1] = sum[0] - buff[0] + buff[10];
sum[2] = sum[1] - buff[1] + buff[11];
(引用自7楼)

这样 也很妙啊!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-27 20:20

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表