Пример #1
0
int VecBinarySearch3(IntVectorPtr vector, int element, int start, int end) {

	int mid;
	if(end<start)
		return -1;

	mid = (end+start)/2;

	if(element < vector->data[mid])
		return VecBinarySearch2(vector, element, start, mid-1);
	else if(element > vector->data[mid])
		return VecBinarySearch2(vector, element, mid+1, end);
	else
		return mid; 
}	/*  end VecBinarySearch3 */
Пример #2
0
int main(int argc, char** argv)
{	
	int i;
 	int sz = atoi(argv[1]);
 	int element = atoi(argv[2]);
 	srand( (unsigned)time( NULL ));

	IntVectorPtr vector = VecNew(initialCapacity);

	for(i=0;i<sz+1;i++)
		vector = VecAdd(vector,rand()%100);

	printlist(vector, sz);

	if (argc == 3)
	{	
		VecQuickSort(vector);
		printf("\nThe position of the number %d is %d\n", element, VecBinarySearch(vector, element));
	} else if ( strcmp(argv[3], "-l") == 0 )
	{
		VecQuickSort2(vector, 1, sz-1);
		printf("\nThe position of the number %d is %d\n", element, VecBinarySearch2(vector->data, 0, sz, element));	
	}
		
		
	printlist(vector, sz);

	VecDelete(vector);
	return 0;
}