Example #1
0
File: nary.cpp Project: Utlesh/code
int main() {
    const int N = 3; 
    std::vector<int> array(10);
    
    std::cout << "[ ";
    for(std::size_t i = 0; i < array.size(); i++) {
        array[i] = i * 2;
        
        std::cout << array[i] << "(" << i << ") ";
    }
    std::cout << "]" << std::endl;


    std::cout << "for 10: " << nary_search(array, 10, N) << std::endl;
    std::cout << "for 11: " << nary_search(array, 11, N) << std::endl;
}
Example #2
0
main()
{
	int i,size=65536,x=0;

	for(i=0;i<size;i++)
	a[i]=i*2;
	printf("Enter number to be searched\n");
	scanf("%d",&s);
	/*intf("enter the number of threads used\n");
	/*scanf("%d",&n)*/

	nary_search(size,x);



	
}
Example #3
0
void nary_search(int size,int x)
{
	printf("size = %d\n",size);
	if(size<=4)
	{

		test=0;	
		#pragma omp parallel
		{
			int tid=omp_get_thread_num();
			if(a[global_x+tid]==s)
			{

				printf("found at %d\n",global_x+tid);
				test=1;
			}
		}
		
		if(test==0)
		{

			printf("not found\n");
		}
	}
	else
	{
		test=0;
		#pragma omp parallel 
		{
			int tid=omp_get_thread_num();
			printf("checking (%d --  %d)with thread %d on cpu %d \n",a[tid*size/n+x],a[tid*size/n+size/n-1+x],tid,sched_getcpu());	
			if(s>=a[tid*size/n+x] && s<=a[tid*size/n+size/n-1+x])
			{
				printf("may be here  %d ---- %d  size=(   %d   )\n",a[tid*size/n+x],a[tid*size/n+size/n-1+x],+size/n);
				global_size=size/n;				
				global_x=tid*global_size+x;
				test=1;
			}
		}
		if(test==1)
			nary_search(global_size,global_x);
		else
			printf("not found in");
	}
}