zoukankan      html  css  js  c++  java
  • 二分查找

            #region 查找
            public static bool SeqSearch(int[] arr, int value)
            {
                for (int i = 0; i < arr.Length; i++)
                {
                    if (arr[i] == value)
                    {
                        return true;
                    }
                }
                return false;
            }
    
            public static int SeqSearch(int[] arr, int value)
            {
                for (int i = 0; i < arr.Length; i++)
                {
                    if (arr[i] == value)
                    {
                        return i;
                    }
                }
                return -1;
            }
    
            static int FindMin(int[] arr)
            {
                int min = arr[0];
                for (int i = 0; i < arr.Length; i++)
                {
                    if (arr[i] < min)
                    {
                        min = arr[i];
                    }
                }
                return min;
            }
    
            static int FindMax(int[] arr)
            {
                int max = arr[0];
                for (int i = 0; i < arr.Length - 1; i++)
                {
                    if (arr[i] > max)
                    {
                        max = arr[i];
                    }
                }
                return max;
            }
    
            public static int SearchSearch(int[] arr, int value)
            {
                for (int i = 0; i < arr.Length; i++)
                {
                    if (arr[i] == value)
                    {
                        int j = i - 1;
                        swap(arr, ref i, ref j);
                        return i;
                    }
                }
                return -1;
            }
            public static void swap(int[] arr, ref int i, ref int j)
            {
                int temp = arr[i];
                arr[i] = arr[j];
                arr[j] = temp;
            }
    
            public static int SeqSearch(int[] arr, int value)
            {
                for (int i = 0; i < arr.Length - 1; i++)
                {
                    if (arr[i] == value && i > arr.Length * 2)
                    {
                        int j = i - 1;
                        swap(arr, ref i, ref j);
                        return i;
                    }
                    else if (arr[i] == value)
                    {
                        return i;
                    }
                }
                return -1;
            }
    
            public static int SeqSearch(int[] arr, int value)
            {
                for (int i = 0; i < arr.Length - 1; i++)
                {
                    if (arr[i] == value)
                    {
                        int j = i - 1;
                        swap(arr, ref i, ref j);
                        return i;
                    }
                }
                return -1;
            }
            #endregion
    
            #region 二分查找
            public int BinarySearch(int[] arr, int value)
            {
                int low = 0, high = arr.Length - 1, mid;
                while (low <= high)
                {
                    mid = (low + high) / 2;
                    if (mid == value)
                    {
                        return mid;
                    }
                    else
                    {
                        if (value < arr[mid])
                        {
                            high = mid - 1;
                        }
                        else
                        {
                            low = mid + 1;
                        }
                    }
                }
                return -1;
            }
    
            public int BinarySearch(int[] arr, int value, int low, int high)
            {
                if (low > high)
                {
                    return -1;
                }
                else
                {
                    int mid = (low + high) / 2;
                    if (value<mid)
                    {
                        return BinarySearch(arr,value,low,high-1);
                    }
                    else if (value==mid)
                    {
                        return mid;
                    }
                    else
                    {
                        return BinarySearch(arr,value,mid+1,high);
                    }
                }
            }
            #endregion
    View Code
  • 相关阅读:
    ACS 20070108 更新
    道德沦丧 还是意识淡薄
    Alienwave.CommunityServer 20070103 更新
    无题
    《白马啸西风》之李文秀
    突然感觉自己像拉皮条的
    数据库日志文件(x.ldf)如何打开?
    调试.NET出错
    老大离开南京了
    最近太任性了
  • 原文地址:https://www.cnblogs.com/futengsheng/p/7837153.html
Copyright © 2011-2022 走看看