.net面試題目彙總(二)

常常會被問到的二個算法:冒泡排序和二分法。如下是兩個比較經典的實現。
 
冒泡排序算法:
         public void BubbleSort( int[] arr)
        {
             for ( int i = 1; i < arr.Length; i++)
                 for ( int j = 0; j < arr.Length - i; j++)
                {
                     if (arr[j] > arr[j + 1])
                    {
                         int tmp = arr[j];
                        arr[j] = arr[j + 1];
                        arr[j + 1] = tmp;
                    }
                }
        }
 
二分法查找:
         public int HalfSearch( int key, int[] arr)
        {
             int left = 0;
             int right = arr.Length - 1;

             while (left <= right)
            {
                 int middle = (left + right) / 2;

                 if (key == arr[middle])
                     return middle;
                 else if (key > arr[middle])
                {
                    left = middle + 1;
                }
                 else
                {
                    right = middle - 1;
                }
            }
             return -1;
        }
相關文章
相關標籤/搜索