昨天的面试

  终于来北京了。参加了第一个面试,地点微软大厦。

  能记下的写出来吧。

  1.值类型与引用类型的区别以及写出下列输出:

int i = 200;
object o = i;
int j = (int)o;
Console.WriteLine("o:{0},j:{1}",o,j);

  2.写出输出:

 public class A
    {
        public static int X = B.Y;
        public A()
        {
            ++X;
        }
    }
    public class B
    {
        public static int Y = A.X;
        static B()
        {
            ++Y;
        }
    }
Console.WriteLine(A.X.Tostring());
Console.WriteLine(B.Y.Tostring());

  3.查找一个数组中成员重复的次数,将该成员与出现次数对应输出;

  4.快速排序

  

//算法大意
/*
    将数组第一个数作为参考变量,从前向后,将大于该数的值移动到该数的右边,从后向前小于该数的值移动到该数的左边,直到两数相遇,不可分割为止。
然后递归,将0到刚才相遇的数的位置为一个子数组,相遇位置到结尾为第二个子数组,如此继续直到子数组长度为1.
*/
public int QuickSort(int [] arra,int low ,int high)
{
  //参考值
  int key=arra[0];

   //数组还可以切割
   while(low<hgh)
   {
    //满足条件,数组往前走,循环
     while(key<array[high]&&low<high)
    --high
    //不满足时,说明该数比key小,即交换位置
    array[low]=array[high];

    //满足条件,数组往后走,循环
     while(key>array[low]&&low<high)
     ++low;
     //否则将 大的数移动到右边
    array[high]=array[low];
    }
    //循环结束时,high与low相等,数组不在分割成小数组,该成员的值即为key
    array[low]=key;
    return high;    
}
public void Sort(int [] arr,int l,int h)
{
    if(l>h) return;
    int index=QuickSort(arr,int l,int h)
    //左边递归
    Sort(arr,0,index-1);
    //右边递归
    Sort(arr,index+1,arr.Length-1);
}

  5.查找最长公共子字符串

  (当时没做出来,回去研究)

原文地址:https://www.cnblogs.com/shy-huang/p/3938821.html