八皇后问题借助位运算秒解

上课手写的
八皇后问题借助位运算秒解_第1张图片

实测:

#include 
#include 

int count = 0;

int search(unsigned char A, unsigned char B, unsigned char C)
{
    if(B!=255)
    {    
    unsigned char D = ~(A|B|C);
     while(D)
     {
        unsigned char bit = D & (-D);
        D ^= bit;
        search((A|bit)<<1, B|bit, (C|bit)>>1);
     }
    }
    else
    count ++;
   return 0;
}


int main(){
    time_t tm;
    tm =time(0);
    search(0, 0, 0);
    printf("count:%d\ntime:%ld\n", count,time(0)-tm);
    return 0;
}

结果:
八皇后问题借助位运算秒解_第2张图片

你可能感兴趣的:(数据结构和算法)