溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

C#中二分法查找的基礎(chǔ)知識

發(fā)布時間:2020-07-10 09:38:24 來源:億速云 閱讀:203 作者:Leah 欄目:編程語言

這篇文章將為大家詳細(xì)講解有關(guān)C#中二分法查找的基礎(chǔ)知識,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

二分法查找:適用于已經(jīng)排序好的數(shù)組

1、二分法查找(入門案例)

static void Main(string[] args) {
	int[] myNums = {1,13,22,34,56,143,167,211,266,363,466,572,595,645,688,689,702,779,888,899,922};

	Console.WriteLine("我的數(shù)組是:");
	for(int i = 0; i < myNums.Length; i++) {
		Console.Write("{0} ", myNums[i]);
	}
	Console.WriteLine();

	//使用二分法從數(shù)組查找指定值
	//取得查找值在數(shù)組中的索引位置
	int QueryValueIndex = QueryFromTwoParts(688, myNums, 0, myNums.Length - 1);
	Console.WriteLine("--------------------------------------------------------");
	Console.WriteLine("查找值688在數(shù)組中的索引位置是:{0}", QueryValueIndex);
	Console.WriteLine("數(shù)組myNums索引位置{0}處的值是:{1}", QueryValueIndex, myNums[QueryValueIndex]);

	Console.ReadKey();
}

//該方法返回的是查找值在數(shù)組中的索引位置
private static int QueryFromTwoParts(int QueryValue, int[] nums, int leftIndex, int rightIndex) {
	//計算數(shù)組中間值的在數(shù)組中的索引位置
	int midValueIndex = (leftIndex + rightIndex + 1) / 2;

	//取得數(shù)組中間索引位置處的值
	int midValue = nums[midValueIndex];

	//比較中間值與查找值的大小,確定下一步該怎樣繼續(xù)查詢
	if(QueryValue == midValue) {
		return midValueIndex;
	} else if(QueryValue < midValue) {
		return QueryFromTwoParts(QueryValue, nums, leftIndex, midValueIndex);
	} else {
		return QueryFromTwoParts(QueryValue, nums, midValueIndex, rightIndex);
	}

}

2、代碼運(yùn)行結(jié)果:

C#中二分法查找的基礎(chǔ)知識

關(guān)于C#中二分法查找的基礎(chǔ)知識就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI