掌趣2016校招大题

北京掌趣科技股份有限公司成立于2004年8月,注册于中关村科技园,是国家高新技术企业和双软认证企业。公司主营游戏开发、代理发行和运营,是中国领先的移动终端及互联网页面游戏开发商、发行商和运营商。

宣讲会听了一下很有感染力,学到了很多,还和掌趣老总在台下有几次简单的对话,很是激动。

校招就是基础基础概念的考察,先填空,选择,还有3道编程,给大家分享,仅供学习。

第一题:

二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。

进行二分查找的前提是数组已排序,这里假定数组递增排序。

每次查找都将待查找数num与处于数组中间位置a[mid]的数进行比较,num < a[mid]则在mid之前的元素中进行查找,反之在mid之后的元素中进行查找。

在函数中使用low, mid, high来对待查找的范围来进行标记。

<span style="font-size:18px;">/*整数查找*/
void binsearch( int num, int a[], int length )        /*num为待查找数字,length为数组a的长度*/
{
    int low, mid, high;
    low = 0;
    high = length - 1;
    while( low <= high )
    {
        mid = ( low + high ) / 2;
        if( a[mid] > num )
            high = mid - 1;
        else if( a[mid] < num )
            low = mid + 1;
        else
            return mid;
    }
    return -1        /*未查找到num返回-1*/
}</span>
第二题:二叉树层次遍历:也是二叉树遍历的一种方式,二叉树的层次遍历更像是一种广度优先搜索(BFS)。
二叉树详细知识概念:二叉树的总结
//层次遍历
void BinTree::level_order(BinTreeNode *r)const
{
    if(r == NULL)
        return;
    deque<BinTreeNode*> q;
    q.push_back(r);
    while(!q.empty())
    {
        BinTreeNode *pTmpNode = q.front();
        cout<<pTmpNode->get_data()<<" ";
        q.pop_front();
        if(pTmpNode->get_left() != NULL)
        {
            q.push_back(pTmpNode->get_left());
        }
        if(pTmpNode->get_right() != NULL)
        {
            q.push_back(pTmpNode->get_right());
        }
    }
}

第三题:队列的创建

队列:点击打开链接

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值