shiony710
03-02-2015, 19:16
Ciao a tutti, ho urgente bisogno di aiuto, questa è la traccia:
Dato un vettore di interi v e un intero x scrivi una funzione in C che stabilisce se esistono in v due elementi
v[i] e v[i] tali che v[i] + v[i] = x. Calcola la complessita computazionale dell'algoritmo
proposto. Esiste un'algoritmo che funziona in tempo
O(n^2)? E possibile fare meglio?
Questo è quello che ho provato a fare:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int v[100], n, i, j, position;
printf("Inserisci il numero degli elementi\n");
scanf("%d", &n);
printf("Inserisci %d elementi\n", n);
for ( i = 0 ; i < n ; i++ )
scanf("%d", &v[i]);
int x;
printf("inserisci un intero x \n");
scanf("%d", &x);
for ( i = 0 ; i < ( n - 1 ) ; i++ )
{
position = i;
int somma = v[position] + v[j];
for ( j = i + 1 ; j < n ; j++ )
{
if ( somma = x )
somma = x;
}
if ( somma != x )
i++;
}
system("pause");
return 0;
}
Dato un vettore di interi v e un intero x scrivi una funzione in C che stabilisce se esistono in v due elementi
v[i] e v[i] tali che v[i] + v[i] = x. Calcola la complessita computazionale dell'algoritmo
proposto. Esiste un'algoritmo che funziona in tempo
O(n^2)? E possibile fare meglio?
Questo è quello che ho provato a fare:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int v[100], n, i, j, position;
printf("Inserisci il numero degli elementi\n");
scanf("%d", &n);
printf("Inserisci %d elementi\n", n);
for ( i = 0 ; i < n ; i++ )
scanf("%d", &v[i]);
int x;
printf("inserisci un intero x \n");
scanf("%d", &x);
for ( i = 0 ; i < ( n - 1 ) ; i++ )
{
position = i;
int somma = v[position] + v[j];
for ( j = i + 1 ; j < n ; j++ )
{
if ( somma = x )
somma = x;
}
if ( somma != x )
i++;
}
system("pause");
return 0;
}