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

    技术2022-05-19  20

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

    一.矩形三等分问题

       问题描述:通过折叠将一张矩形的纸分成三等份

       解法一:

      

     

    如上图所示:

    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 }    

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

     

    三.排序算法

    冒泡排序

    插入排序

    选择排序

    堆排序

    希尔排序

    箱排序

    桶排序

     

     

     


    最新回复(0)