Exemple #1
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;
}
Exemple #2
0
void VecQuickSort2(IntVectorPtr vector, int start, int end)
{	
	int l=start, r=end, tmp, piv=vector->data[(start+end)/2];

	while(l<=r) {

		while(vector->data[l] < piv)	l++;
		while(vector->data[r] > piv)	r--;
		
		if(l<=r) {
			tmp = vector->data[l];
			vector->data[l]=vector->data[r];
			vector->data[r]=tmp;
			l++;
			r--;
		}
	}
	if(start < r)
		VecQuickSort2(vector,start,r);
	if(l < end)
		VecQuickSort2(vector,l,end);
}	/*  end VecQuickSort */