C# 算法题目,求解

evjen 2010-12-26 10:41:08
1.已知一个固定大小的数值数组,且该数组中的数值为常数,请设计一个尽可能快速的算法计算两个下标间所有数值的和。

2.已知数组Array是一个已排序的数组,给出一个指定的值要求输出该值在数组中的下标,如果该值不存在则返回-1,写出适合 所有排序类型的查找函数和实现
...全文
289 24 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
marvels 2010-12-28
  • 打赏
  • 举报
回复
高手很多吗
绿色夹克衫 2010-12-28
  • 打赏
  • 举报
回复
第一题,开一个数组记录累加,以2,7,8,16,3为例,累加为0,2,9,17,33,36,求某一段的和,比如1-3(数值为7,8,16),就用累加的两段减一下好了,33 - 2 = 31

第二题,改一下BinarySearch应该就可以,支持泛型的。
兔子-顾问 2010-12-27
  • 打赏
  • 举报
回复
1.已知一个固定大小的数值数组,且该数组中的数值为常数,请设计一个尽可能快速的算法计算两个下标间所有数值的和。
--------------------
没有比for更快的了

2.已知数组Array是一个已排序的数组,给出一个指定的值要求输出该值在数组中的下标,如果该值不存在则返回-1,写出适合 所有排序类型的查找函数和实现
--------------------
已排序的,查找,难道不是折半最快?

guyoujing 2010-12-27
  • 打赏
  • 举报
回复
我也想那拿分。。。。可是上面的人都回答了。。
jeven_xiao 2010-12-27
  • 打赏
  • 举报
回复
linp
vrhero 2010-12-27
  • 打赏
  • 举报
回复
哪有你们想的那么复杂...这个跟什么类型跟什么排序都没关系,只要继承了IEnumerable<T>接口即可...例...
var array=new int[]{1,3,5,6,7,8,9};
//1
var sum=array.Skip(minindex).Take(maxindex-minindex).Sum();
//2
var idx=array.Select((item, index)=>new{item,index}).FirstOrDefault(f=>f.item==value);
var ridx=idx==null??-1:idx;
vrhero 2010-12-27
  • 打赏
  • 举报
回复
Linq的基本功能,自己查查MSDN吧...
Ryan20082009 2010-12-27
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 claymore1114 的回复:]

C# code

var array = Enumerable.Range(1, 100).ToArray();
int index1 = 3, index2 = 5;
var sum = array.Skip(index1).Take(index2 - index1 + 1).Sum();


i……
[/Quote]+1
烈火蜓蜻 2010-12-27
  • 打赏
  • 举报
回复
[Quote=引用楼主 evjen 的回复:]
1.已知一个固定大小的数值数组,且该数组中的数值为常数,请设计一个尽可能快速的算法计算两个下标间所有数值的和。

2.已知数组Array是一个已排序的数组,给出一个指定的值要求输出该值在数组中的下标,如果该值不存在则返回-1,写出适合 所有排序类型的查找函数和实现
[/Quote]

这个没有办法

不同类型,需要客户自己写比校函数。
如果委托可以用的话,那是可以实现
zhoupin 2010-12-27
  • 打赏
  • 举报
回复
等待高人
evjen 2010-12-27
  • 打赏
  • 举报
回复


所有排序类型的查找函数和实现
q107770540 2010-12-27
  • 打赏
  • 举报
回复
try linq
weakey 2010-12-27
  • 打赏
  • 举报
回复
弱弱的问问,这种题的回答不是到处都是吗?
麦麦_同学 2010-12-27
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 lxh13133718300 的回复:]
这个我智商是不是有点底
我没看懂
[/Quote]我的智商也低啊
闲着吃菜 2010-12-27
  • 打赏
  • 举报
回复
这个我智商是不是有点底
我没看懂
claymore1114 2010-12-27
  • 打赏
  • 举报
回复

var array = Enumerable.Range(1, 100).ToArray();
int index1 = 3, index2 = 5;
var sum = array.Skip(index1).Take(index2 - index1 + 1).Sum();


int value = 50;
var index = Array.IndexOf(array, value);
rabbitlzx 2010-12-27
  • 打赏
  • 举报
回复
第二题是要写出所有的查找算法么?如果要找速度最快的应该就是折半查找了
rabbitlzx 2010-12-27
  • 打赏
  • 举报
回复

if( a < b) return -1; // index error
int sum = 0;
for(int i = a; i <=b; ++i)
sum += arr[i];

return sum;

三岁、就很帅 2010-12-27
  • 打赏
  • 举报
回复
int64 2010-12-27
  • 打赏
  • 举报
回复
1、好像就是简单的for计算加法吗
2、二分法查找是最快的
加载更多回复(2)
内容概要:本文档涵盖了多种经典的C#算法面试题目及其解答,主要分为几大板块:首先是递归算法的应用实例,如阶乘、斐波那契数列的递归实现;其次是几种常见排序算法的具体编码演示,包括但不限于冒泡排序和选择排序;再者是对一些特殊场景下的操作进行了讲解与练习,比如字符串逆置方法、字符出现频率计数器以及自定义整型转换等;此外还包含了一些实用技巧分享,如List容器内的元素删减法则等。通过对这些题目深入剖析并给出了完整解决方案。 适用人群:适用于有一定C#基础知识,希望提升编程能力特别是面对面试准备的程序员们,帮助他们在实际工作中更好地应对类似的技术挑战。 使用场景及目标:这份资料可以帮助开发者加深理解常用的数据结构与算法概念,提高解决问题的能力和效率,增强职场竞争力;同时也有助于教师用来作为教学素材辅助学生掌握C#的相关知识点。 其他说明:本文不仅关注具体的问题求解方式介绍,还包括很多优化措施和思考方向探讨,在一定程度上能够开拓读者思路。 标签顺序依据内容的重要性排列。递归算法作为文中频繁提及的重要概念排在首位,随后是排序算法,这是因为它们同样占据了较大篇幅并且非常重要。List操作则是C#编程实

111,097

社区成员

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

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

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