1. 程式人生 > 實用技巧 >對話方塊類控制元件-QInputDialog

對話方塊類控制元件-QInputDialog

非遞迴寫法:

            public static int search(int left, int right, int[] array, int key)
            {

                int mid = (left + right) / 2;
                //不在當前搜尋集裡面
                if (key < array[0] || key > array[array.Length - 1])
                {
                    return -1;
                }
                
while (left <= right) { if (array[mid] == key) { return mid; } else if (array[mid] > key) { right = mid - 1; }
else { left = mid + 1; } } return -1; }

遞迴寫法:

   public static int search(int left, int right, int[] array, int key)
            {
                int mid = (left + right) / 2;
                
//不在當前搜尋集裡面 if (key < array[0] || key > array[array.Length - 1]) { return -1; } while (left <= right) { if (array[mid] == key) { return mid; } else if (array[mid] > key) { return search(left,mid-1,array,key); } else { return search(mid+1,right,array,key); } } return -1; }

Main函式:

 public static void Main()
            {
                int[] array = { 10, 14, 16, 18, 25, 30, 45, 65, 76, 81, 90, 102, 156 };
                foreach(int a in array)
                {
                    Console.Write(a+" ");

                }
                Console.WriteLine();
                Console.WriteLine("查詢10000:"+search(1,array.Length,array,10000));
                Console.WriteLine("查詢5:" + search(1,array.Length,array, 5));
                Console.WriteLine("查詢18:" + search(1, array.Length , array, 18));
                Console.ReadKey();
            }