C#有没有现成方法从大数组里查找一个小数组

tiger波波 2016-03-11 10:02:44
比如
有个大数组A,100字节,存放整数0-99,从小到大的顺序

有个小数组B,4字节, 存放整数85,86,87,88

我想从A里查找B,有的话返回第一次出现的位置
...全文
293 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
好几只小萝莉 2016-03-11
  • 打赏
  • 举报
回复

        int xx(int[] da, int[] xiao)
        {
            for (int i = 0; i < da.Length; i++)
            {
                int i_ = i;
                for (int j = 0; j < xiao.Length; j++)
                {
                    if (da[i_] != xiao[j]) break;
                    if (j == xiao.Length - 1)
                        return i;
                    else
                        i_++;
                }
            }
            return -1;
        }
  • 打赏
  • 举报
回复
如果是顺序的话,那你直接查最小数字出现的位置不就行了?for循环下最简单,如果你一定要index,那你可以通过Linq的select方法来获取索引
crystal_lz 2016-03-11
  • 打赏
  • 举报
回复
不考虑效率 一个二重循环就搞定了 简单方便 如果考虑效率 百度 KMP算法
socg 2016-03-11
  • 打赏
  • 举报
回复
好像没有现成的方法
Poopaye 2016-03-11
  • 打赏
  • 举报
回复
如果B是顺序排列的,那只要确定第一个元素的位置就行了
int position = Array.IndexOf(A, B[0]);
tiger波波 2016-03-11
  • 打赏
  • 举报
回复
谢谢大家的回复,上边只是举了个例子是顺序的只是方便理解。 我新学C#,怕自己有现成的算法不知道用,傻傻的自己去实现。 我印象中C#好像很多功能都封装好了,所以开发起来快。 请问对于此应用有现成的算法可用吗???

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧