您的位置:首页 > 其它

《算法分析与设计》第二周课堂笔记 孙晓 老湿

2011-03-07 13:23 260 查看
孙晓 老湿 《算法分析与设计》第二周课堂笔记
一.矩形三等分问题
问题描述:通过折叠将一张矩形的纸分成三等份
解法一:




如上图所示:
1.沿FI对折,再沿着EJ对折,然后在沿着AD对折。
2.展开矩形,沿着ABCD的对角线BD对折
3.把角B向D折叠,折出三条折线,使产生的折现分别已A,E,F为端点,并且要使对角线BD重合。
4.此时折出的三条折现分别是:AC,EH,FG,他们在BC边上的端点GH将BC边等分为三等份。
5.剩下的就简单了。

二.面试题
1.判断2,4,8,16等2的N次幂。
解答:if(X&(X-1))
说明:利用二进制解答:
输入值 2 4 8 16
二进制 10 100 1000 10000
二进制-1 01 011 0111 01111
两者做与 0 0 0 0

所以,如果输入值是2的N次幂,那么(X&(X-1)) ==0

2.完成字符串拷贝函数:
char * strcpy(char * strDest,const char *strSrc)
   {
      //判断指针时候为空
      assert((strDest!=null)&&(strSrc!=null))
      char * address=strDest;
      while((*strDest++=*strSrc++)!='/0')
      return address
   }

说明:首先要判断指针时候为空。

三.排序算法:
冒泡排序
插入排序
选择排序
堆排序
希尔排序
箱排序
桶排序
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: