C#,数据检索算法之三元搜索(Ternary Search)的源代码

C#,数据检索算法之三元搜索(Ternary Search)的源代码_第1张图片

数据检索算法是指从数据集合(数组、表、哈希表等)中检索指定的数据项。

数据检索算法是所有算法的基础算法之一。

本文发布 三元搜索(Ternary Search)的源代码。

1 文本格式

using System;

namespace Legalsoft.Truffer.Algorithm
{
    public static class ArraySearch_Algorithm
    {
        ///


        /// 三元搜索
        ///

        ///
        ///
        ///
        ///
        ///
        static int Ternary_Search(int[] arr, int left, int right, int x)
        {
            if (right >= left)
            {
                int mid1 = left + (right - left) / 3;
                int mid2 = mid1 + (right - left) / 3;
                if (arr[mid1] == x)
                {
                    return mid1;
                }
                if (arr[mid2] == x)
                {
                    return mid2;
                }
                if (arr[mid1] > x)
                {
                    return Ternary_Search(arr, left, mid1 - 1, x);
                }
                if (arr[mid2] < x)
                {
                    return Ternary_Search(arr, mid2 + 1, right, x);
                }
                return Ternary_Search(arr, mid1 + 1, mid2 - 1, x);
            }
            return -1;
        }
    }
}
 

 ——————————————————————

POWER BY 315SOFT.COM &
TRUFFER.CN

2 代码格式

 

using System;

namespace Legalsoft.Truffer.Algorithm
{
    public static class ArraySearch_Algorithm
    {
        /// 
        /// 三元搜索
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        static int Ternary_Search(int[] arr, int left, int right, int x)
        {
            if (right >= left)
            {
                int mid1 = left + (right - left) / 3;
                int mid2 = mid1 + (right - left) / 3;
                if (arr[mid1] == x)
                {
                    return mid1;
                }
                if (arr[mid2] == x)
                {
                    return mid2;
                }
                if (arr[mid1] > x)
                {
                    return Ternary_Search(arr, left, mid1 - 1, x);
                }
                if (arr[mid2] < x)
                {
                    return Ternary_Search(arr, mid2 + 1, right, x);
                }
                return Ternary_Search(arr, mid1 + 1, mid2 - 1, x);
            }
            return -1;
        }
    }
}

你可能感兴趣的:(C#算法演义,Algorithm,Recipes,c#,算法)