您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關C#中二分法查找的基礎知識,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
二分法查找:適用于已經排序好的數組
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("我的數組是:"); for(int i = 0; i < myNums.Length; i++) { Console.Write("{0} ", myNums[i]); } Console.WriteLine(); //使用二分法從數組查找指定值 //取得查找值在數組中的索引位置 int QueryValueIndex = QueryFromTwoParts(688, myNums, 0, myNums.Length - 1); 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 + 1) / 2; //取得數組中間索引位置處的值 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#中二分法查找的基礎知識就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。