社区
C#
帖子详情
C# 二分法(折半)查找数组最大最小值?
思嘉
2011-07-18 11:10:59
忘记了!请高人指点
...全文
379
8
打赏
收藏
C# 二分法(折半)查找数组最大最小值?
忘记了!请高人指点
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sdl2005lyx
2011-07-18
打赏
举报
回复
lz,net类库中的集合类大都是带排序的,为什么非要自己写一个呢?
你是不是要完成老是布置的作业啊,呵呵。。。?
flyerwing
2011-07-18
打赏
举报
回复
直接LINQ.MAX就OK了.
qiuruonan
2011-07-18
打赏
举报
回复
//二分法查找元素k下标,如果元素存在,则返回其下标,不存在,返回-1
//调用时候,数组必须是已经从小到大已经排序好的数组
public static int BinarySearch(T[] a, int n,T k)
{
int low, high, mid;
low = 0;
high = n - 1;
mid = (low + high) / 2;
while (low <= high)
{
// if (a[mid] < k) low = mid + 1;
if (a[mid].CompareTo(k) < 0) low = mid + 1;
else if (a[mid].CompareTo( k)>0) high = mid - 1;
else break; //找到了
mid = (low + high) / 2;
}
if (low > high) mid = -1; //没有找到
return mid;
} //end BinarySeach
bdmh
2011-07-18
打赏
举报
回复
二分法是要去有序数列,不能是无序的,代码,百度找吧
xuexiaodong2009
2011-07-18
打赏
举报
回复
[Quote=引用 1 楼 gomoku 的回复:]
不需要二分法。
如果已经排过序,第一个和最后一个就是最大或最小值。
如果没有排过序,则直接遍历一次。因为每个元素都要检查一次,不然怎么知道它是不是最大最小值。
[/Quote]
如果已经排过序,第一个和最后一个就是最大或最小值。
如果没有排过序,则直接遍历一次。因为每个元素都要检查一次,不然怎么知道它是不是最大最小值。
二分法(折半的前提就是已经排过序了
gomoku
2011-07-18
打赏
举报
回复
不需要二分法。
如果已经排过序,第一个和最后一个就是最大或最小值。
如果没有排过序,则直接遍历一次。因为每个元素都要检查一次,不然怎么知道它是不是最大最小值。
Tragedy
2011-07-18
打赏
举报
回复
排序 取第一个和最后一个 即最大、最小
TimZhuFaith
2011-07-18
打赏
举报
回复
binarysearch前提就是已经排序完成。。。。
最简单的就是遍历数组,记录最大值最小值 比较当前值 并更新,直到数据结束!
貌似有个不用O(n)的算法。忘记了
c#
寻找最优解示例
本示例提供了三种常用的方法:格点法、单峰区间进退法和黄金分割法,这些都是数值优化方法,旨在找到使某个目标函数达到
最大
值或
最小值
的输入值。以下是对这些方法的详细解释: 1. **格点法(Grid Search)**: 格...
一维
数组
一维
数组
找
最大
值 Getmax(int a[],int n) 选择排序 selectsort(int ...
折半
查找
某元素的位置(
二分法
查找
) binarysearch(int a[],int n) 找
最大
值 int Getmax(int a[], int n) { int pos, temp; pos ...
论学二分
查找
的感悟
二分算法应该是算法海洋里比较简单的一个算法了吧。 但是我却花了两周多的时间才摸到了点皮毛 不过从无到有,总算是从...首先,老生常谈,二分
查找
也成
折半
查找
(Binary Search),是一种效率较高的
查找
方法,但是二.
python语言
折半
查找
_
c#
折半
查找
法实现代码
搜索过程从
数组
的中间元素开始,如果中间元素正好是要… 二分
查找
法也称为
折半
查找
法,在有序的序列中使用
二分法
可以提高程序的执行效率. 典型的二分
查找
法代码 public int binarySearch1(int[] arr,int target){ int...
C语言设计从键盘输入10个数存入
数组
A,将A数按升序排列存入
数组
B,用
二分法
在B中
查找
元素X,输出X在B中的位置,如果未找到,给出相应提示信息
1.采用升序法和
折半
查找
法。首先定义大小为10的整型
数组
a和b,再定义整型变量i,j,k,temp,min,x,n,m并且给n,m赋初值0,9。2. 通过for循环将键盘输入的数依次赋给a的10个元素。3.采用for循环,i+1赋值给k,
数组
...
C#
111,097
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章