?? binsearcharray.cs
字號(hào):
using System;
namespace BinSearch
{
/// <summary>
/// BinSearchArray 二分法查找的類。
/// </summary>
public class BinSearchArray
{
public BinSearchArray()
{
Random rd = new Random();
intArray = new int[50];
for (int i = 0; i < 50; ++i)
intArray[i] = rd.Next(1, 200);
}
private int[] intArray;
/// <summary>
/// 輸出數(shù)據(jù)內(nèi)容。
/// </summary>
public void OutPutContent()
{
for (int i = 0; i < 50; ++i)
{
Console.WriteLine("{0}\t{1}", i, intArray[i]);
}
}
/// <summary>
/// 從小到大排序。這里使用是的選擇排序法。
/// </summary>
public void Sort()
{
for (int i = 0; i < 50; ++i)
for (int j = i; j < 50; ++j)
if (intArray[i] > intArray[j])
{
int temp = intArray[i];
intArray[i] = intArray[j];
intArray[j] = temp;
}
}
/// <summary>
/// 二分法查找。
/// </summary>
/// <param name="n">要被查找的鍵值。</param>
/// <returns>若存在返回值則返回位置,否則返回-1。</returns>
public int BinSearch(int n)
{
return BinSearch(n, 0, 49);
}
/// <summary>
/// 真正的二分法查找實(shí)現(xiàn)。我比較喜歡使用遞歸。
/// </summary>
/// <param name="n">要被查找的鍵值。</param>
/// <param name="begin">被查找的起始位置</param>
/// <param name="end"></param>
/// <returns>若存在返回值則返回位置,否則返回-1。</returns>
private int BinSearch(int n, int begin, int end)
{
if (begin > end)
return -1;
int pos = (begin + end) / 2;
if (intArray[pos] < n)
return BinSearch(n, pos + 1, end);
if (intArray[pos] > n)
return BinSearch(n, begin, pos - 1);
return pos;
}
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -