zoukankan      html  css  js  c++  java
  • 大型软件公司.Net面试题(一)

    大型软件公司.net面试题!一定得看

    1:a=10,b=15,在不用第三方变量的前提下,把a,b的值互换

    2:已知数组int[] max={6,5,2,9,7,4,0};用快速排序算法按降序对其进行排列,并返回数组


    3:请简述面向对象的多态的特性及意义!

    4:session喜欢丢值且占内存,Cookis不安全,请问用什么办法代替这两种原始的方法

    5:对数据的并发采用什么办法进行处理较好。

    6:已知Oracle数据库有GD和ZS两个数据库,GD数据库v_s表有数据写入时,从v_s表中提取最新数据到ZS数据库的D_E表中。请问用什么办法解决这一问题?如果又碰到不能互访的问题时,又用什么办法解决?

    7:已知Oracle数据库a,b
    现在在a用户权限下,访问b数据库sql语句为select a.* From b a,请改正这一句Sql的写法

    8:当对数据库进行海量级的数据插入时,数据库出现报错,错误原因可能有哪些,以你的经验谈谈你的解决办法

    9:算法分析
    AH 20060625 12 44 01 CAD001
    AH 20060625 12 44 01 CAD001
    AH 20060625 13 44 02 CAD001
    AH 20060625 14 44 03 CAD001
    说明:第二列表示日期,第三列表示温度,第四列表示水位,第五列表示流量,第6列表示水位测站编码,每一列表示一个字段
    很明显第一条数据和第二条数据重复,然数据表中有主键和外键的约束,是不允许有重复的数据存在的,请构造算法将重复的数据Del掉

    10:javascript算法
    已知a,b,现在点鼠标a会向b游动,鼠标停,a会停下来
    请实现"跑步算法"

    1、答案

    a=a+b;
    b=a-b;
    b=(a+b)/2;
    a=a-b;

    还有变态要求,需要代码最短呢。有两个结果:
    1) a^=b^(b^=a^b); // 13个字节
    2) a=b+(b=a)*0; // 11个字节

    2、答案(如果不限定算法,其实可以直接用Array.Sort()方法的)

    public class TestQuickSort {

    private int[] array = null;

    private void quickSort(int lowest, int highest) {
    if (array == null || lowest < 0 || lowest >= highest
    || highest >= array.length) {
    return;
    }
    int low = lowest;
    int high = highest;
    int key = low++;
    for (; low <= high;) {
    if (key < high) {
    if (array[key] > array[high]) {
    array[high] = array[key] + (array[key] = array[high]) * 0;
    key = high;
    }
    high--;
    }

    if (key > low) {
    if (array[key] < array[low]) {
    array[low] = array[key] + (array[key] = array[low]) * 0;
    key = low;
    }
    low++;
    }
    }
    quickSort(lowest, key - 1);
    quickSort(key + 1, highest);
    }

    /**
    * @param args
    */
    public static void main(String[] args) {
    TestQuickSort test = new TestQuickSort();
    int[] array = {6,5,2,9,7,4,0};
    test.array = array;
    test.quickSort(0, array.length - 1);
    int length = test.array.length;
    for (int i = 0; i < length; i++) {
    System.out.println(test.array[i]);
    }
    }
    }

    不要用冒泡排序法很慢,选择排序好些,但题意是快速排序算法

    快速排序算法的基本思想:

    快速排序的基本思想是基于分治策略的。对于输入的子序列ap..ar,如果规模足够小则直接进行排序,否则分三步处理:

    分解(Divide):将输入的序列ap..ar划分成两个非空子序列ap..aq和aq+1..ar,使ap..aq中任一元素的值不大于aq+1..ar中任一元素的值。
    递归求解(Conquer):通过递归调用快速排序算法分别对ap..aq和aq+1..ar进行排序。
    合并(Merge):由于对分解出的两个子序列的排序是就地进行的,所以在ap..aq和aq+1..ar都排好序后不需要执行任何计算ap..ar就已排好序。
    这个解决流程是符合分治法的基本步骤的。因此,快速排序法是分治法的经典应用实例之一。

    算法Quick_Sort的实现:

    Pascal实现:
    Procedure Quick_Sort(p,r:TPosition;var L:TList); {快速排序}

    var

    q:TPosition;

    begin

    if L[p..r]足够小 then Sort(p,r,L) {若L[p..r]足够小则直接对L[p..r]排序}

    else

    begin

    q:=Partition(p,r,L); {将L[p..r]分解为L[p..q]和L[q+1..r]两部分}

    Quick_Sort(p,q,L); {递归排序L[p..q]}

    Quick_Sort(q+1,r,L); {递归排序L[q+1..r]}

    end;

    end;


    3、答案

    面向对象的编程使用了派生继承 以及虚函数机制.
    一个本来指向基类的对象指针可以指向其派生类的.并访问从基类继承而来的成员变量和函数.
    而虚函数是专门为这个特性设计的,这个函数在每个基类的派生类中都是同一个名字,但函数体却并不一定相同,派生类往往为实现自己的功能而修改这个虚函数.这样用一个指针就能够实现对多种不同的派生类的访问, 并实现其派生类的特定功能(代码 )....

    4、答案
    用VIEWSTATE
    stateserver

    5、答案
    可以控制连接池的连接数量条件好的话 可以用负载平衡

  • 相关阅读:
    中文词频统计
    复合数据类型,英文词频统计
    Mybatis 异常:Cause: java.io.IOException: Could not find resource com.xxx.xxx.xml
    Ajax:修改了项目的ajax相关代码,点击运行没有效果
    大数据应用期末总评
    分布式并行计算MapReduce
    分布式文件系统HDFS 练习
    安装关系型数据库MySQL和大数据处理框架Hadoop
    爬虫综合大作业
    爬取全部的校园新闻
  • 原文地址:https://www.cnblogs.com/soundcode/p/1910322.html
Copyright © 2011-2022 走看看