Example #1
0
void enumera(int i, int v[])
{
	int k;
	if (i==LEN) stampa_vettore(v);
	for (k=i; k<LEN; k++) {
		scambia (v, k, i);
		enumera(i+1, v);
		scambia (v, k, i);
	}
}
Example #2
0
int main() {
	int a, b;
	a = 1;
	b = 2;
	printf("Prima\n\ta = %d\n\tb = %d\n", a, b);
	scambia(&a, &b);
	printf("Dopo\n\ta = %d\n\tb = %d\n", a, b);
}
Example #3
0
void SSort(int a[],int n){
		int i,j;
		for(i = 0;i<n-1;i++){
			int iMin = i;
			for(j=i+1;j<n;j++){
				if(a[j]<a[iMin])iMin=j;
				scambia(a,i,iMin);
			}
		}
	}
Example #4
0
void selSort (int *v, int n)
{
	int k, j, m;
     
	for (k=0; k<n-1; k++)
	{
		m=k;
         
		for (j=k+1; j<n; j++)
			if (v[j]<v[m])
				m=j;
         
		scambia (v, m, k);
	}       
}
Example #5
0
int main(){
    int* a;
    int* b;
    int valore1;
    int valore2;
    a=&valore1;
    b=&valore2;
    *a=10;
    *b=20;
    scambia(a,b);
    printf("%d,%d",*a,*b);
    return 0;
    
    
    
    
    
    
    }
Example #6
0
void bubbleSort (int *v, int n)
{
	int noScambi=1;
	int i, j;
     
	for (i=0; i<n-1; i++)
	{
		for (j=1; j<n-i; j++)
			if (v[j-1]>v[j])
		{
			scambia (v, j-1, j);
			noScambi=0;
		}
             
		if (noScambi)
			break;
		else
			noScambi=1;
	}   
}
Example #7
0
void quicksort(int inizio,int fine)
{
    int i,j,pivot;
    i=inizio;
    j=fine;
    pivot=(V[i]+V[j])/2;
    do
    {
        while(V[i]<pivot)
            i++;
        while(V[j]>pivot)
            j--;
        if(i<=j)
        {
            scambia(&V[i],&V[j]);
            i++;
            j--;
        }
    } while(i<=j);
    if(inizio<j)
        quicksort(inizio,j);
    if(fine>i)
        quicksort(i,fine);
}
Example #8
0
/*
 * Inizializza la tabella del sudoku
 * generando uno schema
 */
void inizializza(int spazi){
	int base[n][n] = {\
		{6,9,7,1,4,3,8,2,5},\
		{4,1,8,9,2,5,6,3,7},\
		{2,5,3,8,7,6,4,9,1},\
		{7,3,2,4,6,8,5,1,9},\
		{8,4,9,3,5,1,7,6,2},\
		{5,6,1,2,9,7,3,8,4},\
		{3,8,4,7,1,9,2,5,6},\
		{1,2,6,5,3,4,9,7,8},\
		{9,7,5,6,8,2,1,4,3}\
	};
	int sostituzioni[9];

	/* genera uno schema
	 * facendo delle sostituzione 
	 * in uno di partenza.
	 */

	for(int l=0; l<25; l++){
		int *r; 

		//scambia riga
		r = randomd();
		for(int i=0; i<n; i++){
			for(int k=0; k<n; k++)
				sostituzioni[k] = base[i][k];
			for(int s=0; s<9; s++)
				if (sostituzioni[s] == r[0])
					sostituzioni[s] = r[1];
				else if (sostituzioni[s] == r[1])
					sostituzioni[s] = r[0];
			for(int p=0; p<9; p++)
        		for(int q=0; q<9; q++)
                	base[i][q] = sostituzioni[q];
		}

		//scambia colonna
		r = randomd();
		for(int i=0; i<n; i++){
			for(int k=0; k<n; k++)
				sostituzioni[k] = base[i][k];
			for(int s=0; s<9; s++)
				if (sostituzioni[s] == r[0])
					sostituzioni[s] = r[1];
				else if (sostituzioni[s] == r[1])
					sostituzioni[s] = r[0];
			for(int p=0; p<9; p++)
				for(int q=0; q<9; q++)
					base[q][i] = sostituzioni[q];
		}

	}

	for(int l=0; l<25; l++){
		int r = randomr(0,3);
		switch(r){
			
			//colonna centrale fissa
			case 0:{
				for(int i=0; i<9; i++){
					for(int k=0; k<9; k++)
                    	sostituzioni[k] = base[i][k];
					for(int j=0; j<9; j++)
						if(j != 4)
                        	base[i][j] = sostituzioni[8-j] ;
				}
				break;
			}

			//riga centrale fissa
			case 1:{
				for(int k=0; k<9; k++){
					for(int i=0; i<9; i++)
        	            sostituzioni[i] = base[i][k];
					for(int j=0; j<9; j++)
						if(j!=4)
							base[j][k] = sostituzioni[8-j];
				}
				break;
			}
			
			//inversione riga 3-5
			case 2:{
				for(int i=0; i<9; i++)
					scambia(&base[3][i], &base[5][i]);
				break;
			}
		}
	}
	
	//inserisci gli spazi
	for(int i=0; i<spazi; i++){
        int unico = 0; //la casella รจ valida
		do{
			int x = randomr(0,9);
			int y = randomr(0,9);			
			if(!base[x][x])
				unico = 1;			
			else {
				base[x][y] = 0;
				unico = 0;
			}
		}while(unico == 1);
    }

	//copia lo schema generato nella matrice
	for(int i=0; i<n; i++)
		for(int k=0; k<n; k++){
			sudoku[i][k][0] = base[i][k];
			if(!base[i][k])
				sudoku[i][k][1] = 1;
		}
}