Sunteți pe pagina 1din 3

ALGORITMI ELEMENTARI

Date structurate
Vectori (tablouri unidimensionale)
Ștergerea unui //Se dă un șir X cu n elemente întregi și un număr p.
element dintr- Să se șteargă din șirul X elementul aflat pe poziția p.
un vector
for(int i = p ; i < = n - 1; i ++)
1.
X[i] = X[i+1];
n --;

Inserarea unei // Se dă un șir X cu n elemente întregi, o valoare


valori într-un întreagă val și un număr p. Să se insereze pe
vector poziția p în șir valoarea val.
for(int i = n ; i >= p ; i --)
2.
X[i+1] = X[i];
X[p] = val;
n ++;

3. Sortarea
Metoda bulelor
vectorilor
bool sortat;
do
{
sortat = true;
for(int i = 1 ; i < n ; i ++)
if(v[i] > v[i+1])
{
int aux = v[i];
v[i] = v[i+1];
v[i+1] = aux;
sortat = false;
}
}
while(!sortat);
Sortarea prin selecție (generală / implicită)
for(int i = 1 ; i < n ; i ++)
for(int j = i + 1 ; j < = n ; j ++)
if(X[i] > X[j])
{
int aux = X[i];
X[i] = X[j];
X[j] = aux;
}

Sortarea prin selecția minimului


// Pentru fiecare secvență i ... n-1 se determină
explicit minimul și se interschimbă cu X[i].
for(int i = 1 ; i < n ; i ++)
{
int p = i;
for(int j = i + 1 ; j < = n ; j ++)
if(X[j] < X[p])
p= j;
int aux = X[i];
X[i] = X[p];
X[p] = aux;
}

Sortarea prin inserție

/* fie un vector X[] cu n elemente;
dacă secvența cu indici 1, …, i-1 este ordonată, atunci
putem insera elementul X[i] în această secvență astfel
încât să fie ordonată secvența cu indici 1, …, i-1, i.
luăm pe rând fiecare element X[i] și îl inserăm în
secvența din stânga sa
la final întreg vectorul va fi ordonat*/

for(int i = 2 ; i < = n ; i ++)


{
x = a[i];
for(p = i - 1; p >= 1 && a[p] > x; p--)
a[p + 1] = a[p];
a[p + 1] = x;
}

// Considerăm două tablouri unidimensionale cu elemente


numere întregi ordonate crescător. Se dorește
construirea unui alt tablou, care să conțină valorile
din cele două tablouri, în ordine.
int i = 1 , j = 1;
p = 1;
while(i < = n && j < = m)
if(a[i] < b[j])
c[p ++] = a[i], i ++;
4. Interclasarea
else
c[p ++] = b[j], j ++;
while(i < = n)
c[p ++] = a[i], i ++;
while(j < = m)
c[p ++] = b[j], j ++;

Verificarea Toate elementele respectă regula


unor bool OK = true;
proprietăți
for(int i = 1 ; i < = n && OK ; i ++)
if(X[i] - nu respectă regula)
OK = false;

5. Există elemente care respectă regula


bool OK = false;
for(int i = 1 ; i < = n && !OK ; i ++)
if(X[i] - respectă regula)
OK = true;

S-ar putea să vă placă și