记录

1.      一亿个数据进行排序,用什么排序方式

答:分批处理,一亿是一万万,分批处理,首先取一万进行快速排序,然后取一万之前进行mergesort

2.      N 的前M大

答:当有N个数据,而N又是非常大(比如:千万或者亿),需要找出N条数据的排名最前的M条数据时,可以采用的一种策略。

 

给定n个数,寻找第k小的数,同时给出时间复杂度

比较常见的算法题,也要考虑到n的大小,说了排序,最大堆,以及partition算法

 

先选前M个元素组成一个小根堆,然后遍历剩下的数据,如果第i个元素key大于小根堆的根结点,就删除这个根结点,并将元素key插入根结点,调整这个堆使其成为小根堆,然后继续遍历剩下的数据; 最后,小根堆中的元素就是最大的M个元素。

3.      走迷宫

http://blog.csdn.net/u011889952/article/details/44805377

4.   do

5.   { 

6.             若当前位置可通, 
          则

7.           {

8.                    将当前位置插入栈顶;    // 纳入路径  

9.                    若该位置是出口位置,则结束;                                        // 求得路径存放在栈中        

10.                  否则切换当前位置的东邻方块为新的当前位置;       

11.           }    

12.          否则

13.           {  
                     若栈不空且栈顶位置尚有其他方向未被探索,     

14.                            则设定新的当前位置为: 沿顺时针方向旋转 找到的栈顶位置的下一相邻块;

15.                            若栈不空但栈顶位置的四周均不可通,

16.                             则

17.                          {

18.                                        删去栈顶位置;  // 从路径中删去该通道块

19.                                       若栈不空,则重新测试新的栈顶位置,

20.                                        直至找到一个可通的相邻块或出栈至栈空;

21.                             }  

22.         }
}while (栈不空);

 

4. 递归写一下如何判断回文序列?

回文12321 就是回文

 4 bool isPalindrome(char str[], size_t n)
 5 {
 6     if (n<=1)
 7     {
 8         return true;
 9     }
10     else if (str[0]==str[n-1])
11     {
12         return isPalindrome(str+1,n-2);
13     }
14     else
15         return false;
16 }

5.单例模式 懒汉、饿汉

懒汉:

Class Singleon

{

Private:

Singleon() {};//私有构造函数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值