二分查找的递归算法(附源码)_
2006-12-19 15:11
232 查看
1using System;
2
3namespace BinarySearch
4{
5 /**//// <summary>
6 /// 二分搜索法,Made by AX。
7 /// </summary>
8 public class Search
9 {
10 public static void Main()
11 {
12 int searchKey=8; //要在数组中查找的数字
13 int[] scores={2,4,6,8,10,12}; //数组
14 int low=0; //数组最小索引
15 int high=scores.Length-1; //数组最大索引
16 int searchResult=StartSearch(scores,searchKey,low,high);
17 Console.WriteLine("要查询的数的索引为:"+searchResult);
18 Console.ReadLine();
19 }
20 public static int StartSearch(int[] arr ,int key,int low,int high)
21 {
22 if(low>high)
23 {
24 return -1;
25 }
26 else
27 {
28 //四舍五入方法,结果为6.0
29 //double AX=Math.Round(5.5);
30 //第一次执行(0+5)/2=2
31 int mid=(low+high)/2;
32 if(arr[mid]==key)
33 {
34 return mid;
35 }
36 else if(key<arr[mid])
37 {
38 return StartSearch(arr,key,low,mid-1);
39 }
40 else
41 {
42 return StartSearch(arr,key,mid+1,high);
43 }
44 }
45 }
46 }
47}
2
3namespace BinarySearch
4{
5 /**//// <summary>
6 /// 二分搜索法,Made by AX。
7 /// </summary>
8 public class Search
9 {
10 public static void Main()
11 {
12 int searchKey=8; //要在数组中查找的数字
13 int[] scores={2,4,6,8,10,12}; //数组
14 int low=0; //数组最小索引
15 int high=scores.Length-1; //数组最大索引
16 int searchResult=StartSearch(scores,searchKey,low,high);
17 Console.WriteLine("要查询的数的索引为:"+searchResult);
18 Console.ReadLine();
19 }
20 public static int StartSearch(int[] arr ,int key,int low,int high)
21 {
22 if(low>high)
23 {
24 return -1;
25 }
26 else
27 {
28 //四舍五入方法,结果为6.0
29 //double AX=Math.Round(5.5);
30 //第一次执行(0+5)/2=2
31 int mid=(low+high)/2;
32 if(arr[mid]==key)
33 {
34 return mid;
35 }
36 else if(key<arr[mid])
37 {
38 return StartSearch(arr,key,low,mid-1);
39 }
40 else
41 {
42 return StartSearch(arr,key,mid+1,high);
43 }
44 }
45 }
46 }
47}
相关文章推荐
- 二分查找的递归算法(附源码)_AX
- 二分查找bsearch.c源码分析
- java的Collections中二分查找源码分析
- [underscore源码学习]——`>>` 运算符和二分查找
- 二分查找(源码)
- 二分查找递归非递归算法对比
- JAVA二分查找源码阅读
- 二分查找(Binary Search)需要注意的问题,以及在数据库内核中的实现[谁有源码麻烦贴过来个链接学习学习]
- .NET源码中的二分查找实现
- 递归算法——归并排序,快速排序,二分查找
- 二分查找的递归算法程序
- 常见几个排序源码及二分查找源码
- 二分查找的非递归与递归算法
- 【C语言】二分查找递归算法
- 顺序表二分查找递归算法
- 二分查找的递归算法(折半查找)
- 数据结构与算法学习之路:二分查找的非递归和递归算法
- C源码@数据结构与算法->二分查找树(Binary Search Tree)
- SGISTL源码探究-stl_alog.h中的二分查找算法
- 数组封装应用及有序数组、二分查找源码实现