Beispiel #1
0
int main () {
    int const SIZE = 100000;
    int values[SIZE];
    int const key = 3; //Искомое

    for(int i=0; i<SIZE; ++i) {
        values[i] = rand()%(SIZE/10)+1;
    }

    srand(time(NULL));
    int n;

    qsort (values, SIZE, sizeof(int), compare); //Функция сортировки

    for (n=0; n<100; n++)
        printf ("%d ",values[n]);

    int answer = binarySearch(key,values,SIZE);

    if(answer == -1) {
        printf("\n\nНе найдено\n");
    }
    else {
        int counter = wider(answer,key,values,SIZE);//Функция поиска аналогичных элементов
        printf("\n\nИскомое (%d) найдено в позиции %d. Всего найдено: %d элементов.",key,answer,counter);
    }

    return 0;
}
Beispiel #2
0
int rekursiv(uint16_t* f){
	uint16_t i=0,j,k,ret,bak[81];
	if (wider(f) == 0) return 0;
	if(mogl(f) == 81) return 1;
	for(j=0;j<81;j++) bak[j] = f[j];
	while(freiheit(f[i]) == 1) i++;
	for(j=1;j<10;j++){
		 if((f[i]>> j) & 1 == 1){
			set(f,i/9,i%9,(1<<j));
			ret = rekursiv(f);
			if(ret == 0) for(k=0;k<81;k++) f[k] = bak[k];
			if(ret == 1) return 1;
		}
	}
	return 0;
}