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
  • 相关阅读:
    Sublime keymap 个性修改
    Sublime setting 个性修改
    微信公众接口测试频道
    Thinkphp 架构笔记
    mac ssh 远程容易断线解决方案
    日期按日、周、月 递增
    Centos Apache 多站点配置
    tar解压
    mac 将本地文件上传到vps
    ssh 连接vps
  • 原文地址:https://www.cnblogs.com/futengsheng/p/7837153.html
Copyright © 2011-2022 走看看