c# 二分查找法
1、仅 当 列表 是 有序 的 时候, 二分 查找 才 管用。
2、一般而言, 对于 包含 n 个 元素 的 列表, 用 二分 查找 最多 需要 log2n 步, 而 简单 查找 最多 需要 n 步。
class Program
{
static void Main(string[] args)
{
int[] arr =new int[]{ ,,,,,,,,,,,,,,,, };
Dichotomy(arr);
Console.ReadKey();
} public static void Dichotomy(int[] arr)
{
Console.WriteLine("请输入数字:");
string itemStr = Console.ReadLine();
int item = ;
try
{
item = Convert.ToInt32(itemStr);
int mid = ;
int low = ;
int high = arr.Length - ; //只要范围没有缩小到只包含一个元素
while (low <= high)
{ mid = (low + high) / ;//获取中间的元素
Console.WriteLine($"low:{low}high:{high}mid:{mid}");
int guess = arr[mid];
if (guess == item)
{
Console.WriteLine($"数字{item}在数组的第{mid}位置上");
break;
}
//猜测的数字大了
if (guess > item)
{
high = mid - ;
}
else if (guess < item)
{
low = mid + ;
} }
if (low > high)
{
Console.WriteLine($"此数组不包含数字:{ itemStr}");
}
}
catch (Exception)
{ Console.WriteLine("您输入的不是数字,请重新输入");
Dichotomy(arr);
} }
}
c# 二分查找法的更多相关文章
- jvascript 顺序查找和二分查找法
第一种:顺序查找法 中心思想:和数组中的值逐个比对! /* * 参数说明: * array:传入数组 * findVal:传入需要查找的数 */ function Orderseach(array,f ...
- 用c语言编写二分查找法
二分法的适用范围为有序数列,这方面很有局限性. #include<stdio.h> //二分查找法 void binary_search(int a[],int start,int mid ...
- java for循环和数组--冒泡排序、二分查找法
//100以内与7相关的数 for(int a=1;a<=100;a++){ if(a%7==0||a%10==7||a/10==7){ System.out.print(a+ ...
- 二分查找法 java
前几天去面试,让我写二分查找法,真是哔了狗! 提了离职申请,没事写写吧! 首先二分查找是在一堆有序的序列中找到指定的结果. public class Erfen { public static int ...
- 学习练习 java 二分查找法
package com.hanqi; import java.util.*; public class Test5 { public static void main(String[] args) { ...
- Java-数据结构与算法-二分查找法
1.二分查找法思路:不断缩小范围,直到low <= high 2.代码: package Test; import java.util.Arrays; public class BinarySe ...
- 选择、冒泡排序,二分查找法以及一些for循环的灵活运用
import java.util.Arrays;//冒泡排序 public class Test { public static void main(String[] args) { int[] ar ...
- R语言实现二分查找法
二分查找时间复杂度O(h)=O(log2n),具备非常高的效率,用R处理数据时有时候需要用到二分查找法以便快速定位 Rbisect <- function(lst, value){ low=1 ...
- java学习之—递归实现二分查找法
/** * 递归实现二分查找法 * Create by Administrator * 2018/6/21 0021 * 上午 11:25 **/ class OrdArray{ private lo ...
- [c/c++] programming之路(15)、多维数组和二分查找法,小外挂
一.多维数组 #include<stdio.h> #include<stdlib.h> void main(){ ][]; int i,j; ; i < ; i++) { ...
随机推荐
- Windows下的Jdk 1.7*安装并配置(图文详解)
不多说,直接上干货! 很多人很少去想,为什么在windows下,安装完Jdk的安装包之后,还需要去配置环境变量,只是知道要这么去做,没有想过为什么要去这么做? 答:由于java是平台无关的 ,安装jd ...
- JavaScript -- Style
-----055-Style.html----- <!DOCTYPE html> <html> <head> <meta http-equiv="c ...
- 转:Intellij idea Version Control File Status Colors ( 版本控制文件状态颜色 )
https://blog.csdn.net/Bruce_Lee__/article/details/80261308 Added —— 添加 Added in not active changelis ...
- 26、redis中默认有多少个哈希槽?
Redis 集群中内置了 16384 个哈希槽,当需要在 Redis 集群中放置一个 key-value时,redis 先对 key 使用 crc16 算法算出一个结果,然后把结果对 16384 求余 ...
- Linux 启动过程详解
目录 1. Linux启动过程 2. 启动过程概述 3. 引导加载阶段 4. 内核阶段 4.1 内核加载阶段 4.2 内核启动阶段 5. 早期的用户空间 6. 初始化过程 6.1 SysV init ...
- JDK7 异常的多重捕获
Java 7之前的版本: 1 2 3 4 5 6 7 8 9 10 catch (IOException ex) { logger.error(ex); throw new MyE ...
- How to correctly handle ThreadLocal.get() returning null
Java's ThreadLocals make certain things easy, but special care must be taken to make sure they are r ...
- [总结]其他杂项数学相关(定理&证明&板子)
目录 写在前面 一类反演问题 莫比乌斯反演 快速莫比乌斯变换(反演)与子集卷积 莫比乌斯变换(反演) 子集卷积 二项式反演 内容 证明 应用举例 另一形式 斯特林反演 第一类斯特林数 第二类斯特林数 ...
- GCD之Group
1.问题的提出 在上面的GCD之全局.主线程中介绍了dispatch_get_global_queue.dispatch_get_main_queue的用法,可以看到最后执行的时间在10s 左右,在上 ...
- C#快速读写文件
一.写入 //在应用程序当前目录下的File1.txt文件中追加文件内容,如果文件不存在就创建,默认编码 File.AppendAllText("File1.txt", " ...