二分法查找:适用于已经排序好的数组

1.二分法查找(入门案例)

         static void Main(string[] args)
{
int[] myNums = { , , , , , , , , , , , , , , , , , , ,, }; Console.WriteLine("我的数组是:");
for (int i = ; i < myNums.Length; i++)
{
Console.Write("{0} ",myNums[i]);
}
Console.WriteLine(); //使用二分法从数组查找指定值
//取得查找值在数组中的索引位置
int QueryValueIndex = QueryFromTwoParts(, myNums, , myNums.Length - );
Console.WriteLine("--------------------------------------------------------");
Console.WriteLine("查找值688在数组中的索引位置是:{0}",QueryValueIndex);
Console.WriteLine("数组myNums索引位置{0}处的值是:{1}",QueryValueIndex,myNums[QueryValueIndex]); Console.ReadKey();
} //该方法返回的是查找值在数组中的索引位置
private static int QueryFromTwoParts(int QueryValue, int[] nums, int leftIndex, int rightIndex)
{
//计算数组中间值的在数组中的索引位置
int midValueIndex = (leftIndex + rightIndex + ) / ; //取得数组中间索引位置处的值
int midValue = nums[midValueIndex]; //比较中间值与查找值的大小,确定下一步该怎样继续查询
if (QueryValue ==midValue)
{
return midValueIndex;
}
else if (QueryValue<midValue)
{
return QueryFromTwoParts(QueryValue, nums, leftIndex, midValueIndex);
}
else
{
return QueryFromTwoParts(QueryValue, nums, midValueIndex, rightIndex);
} }

2.代码运行结果:

C# -- 二分法查找的更多相关文章

  1. 使用二分法查找mobile文件中区号归属地

    #!/usr/bin/env python #coding:utf-8 ''' Created on 2015年12月8日 @author: DL @Description: 使用二分法查找mobil ...

  2. js冒泡排序与二分法查找

    冒泡排序 var attr=[1,5,7,6,3,9,2,8,4]; var zj=0; //控制比较轮数 for(var i=0;i<attr.length-1;i++) { //控制每轮的比 ...

  3. Java基础(50):二分法查找的非递归实现和递归实现(完整代码可运行,参考VisualGO理解更佳)

    一.概念 二分查找算法也称折半查找,是一种在有序数组中查找某一特定元素的搜索算法. 二.算法思想 搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束:如果某一特定元素大于或者 ...

  4. C语言的算法--------二分法查找

    int find(int n,int a[],int l){int low=0;int high=l-1;int middle=0;while(low<high){middle=(low+hig ...

  5. JavaScript用二分法查找数据等

    //二分法查数据 var arr=[41,43,45,53,44,95,23]; var b=44; var min=0; var max=arr.length; for(var i=1;i<a ...

  6. Python二分法查找及变种分析

    基于Python3 普通二分法查找目标值的index 二分法查找的思路很简单,先确定好列表nums的一头start一尾end,中间值middle根据头尾数值之和用地板除法除以2,即(start + e ...

  7. C#实现二分法查找算法

    /// <summary> /// 二分法查找 /// </summary> /// <param name="arr"></param& ...

  8. python3 二分法查找

    '''二分法查找有序列表掐头去尾取中间查找列表中xx在不在列表中,在,则返回索引值'''# lst = [1, 4, 6, 8, 9, 21, 23, 26, 35, 48, 49, 54, 67, ...

  9. day17递归函数(二分法查找)

    递归函数: 如果函数包含了对其自身的调用,该函数就是递归的: example 1:二分法查找的实现: def find_recursion(l,aim,start=0,end=None): #end不 ...

随机推荐

  1. centos7安装kafka_2.11

    1.下载 官网地址:http://kafka.apache.org/downloads.html 下载:wget https://www.apache.org/dyn/closer.cgi?path= ...

  2. html引用外部js和css

    html引用外部js和css css:<link rel="stylesheet" type="text/css" href="xx.css&q ...

  3. [转]Ble蓝牙的使用手册

    本文转自:https://blog.csdn.net/dodan/article/details/52060446 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.cs ...

  4. 第一册:lesson eighty nine.

    原文: For sale. A:Good afternoon. I believe that the house is for sale. B:That's right. A:May I have a ...

  5. Asp.Net MVC中Action跳转(转载)

    首先action的跳转大致归类: 1跳转到与当前同一控制器内的action和不同控制器内的action. 2带有参数的action跳转和不带参数的action跳转. 3跳转到指定视图,不经过Contr ...

  6. [Linux] nginx管理员指南基本功能

    1.运行时控制Nginx进程 NGINX有一个主进程和一个或多个工作进程. 如果启用了缓存,则缓存加载器和缓存管理器进程也会在启动时运行. 主进程的主要目的是读取和评估配置文件,以及维护工作进程. 工 ...

  7. 12.QT4.7.4-解决WIN平台和Linux平台中文乱码,QLineEdit右击菜单中文显示

    1.解决Win平台中文显示 1.1首先解决win平台上中文显示乱码问题 1)首先查看qt creator的编码格式 通过->编辑->选择编码 查看. 2)如果qt creator的编码格式 ...

  8. STM32-对芯片启动读保护,实现加密(详解)

    STM32可以对存储在flash上的程序进行读保护. 启动读保护后,用户就不能再读写程序了. 所以,在烧写程序之前,需要程序调用关闭读保护.关闭读保护后,会自动清空flash上的程序 头文件位于:#i ...

  9. Java java jdbc thin远程连接并操作Oracle数据库

    JAVA jdbc thin远程连接并操作Oracle数据库 by:授客 QQ:1033553122 测试环境 数据库:linux 下Oracle_11g_R2 编码工具:Eclipse 编码平台:W ...

  10. 用Python实现Zabbix-API 监控

    做运维的朋友应该知道,公司IDC机房经常有上架.下架.报修和报废的服务器.如果服务器数量很多的时候很容易造成监控遗漏.       大的互联网公司把监控系统和CMDB(资产管理系统|配置管理数据库系统 ...