Scopo
Aggiunge un valore come ultimo elemento dell'array e restituisce il suo indice.
Sintassi
int index = Array.addValue(Valore)
Argomenti
Valore | Valore da aggiungere all'array; può essere un qualunque tipo nativo. |
Valore di ritorno
Viene restituita la posizione in cui l'elemento è stato inserito nell'array.
Esempio di codice
// *****************************************
// Esegue il QuickSort di un array di interi
// *****************************************
public IDArray Idmap.QuickSort(
IDArray A // Array (di interi) da ordinare
)
{
// Se ho un solo elemento: ho già ordinato!
if (A.length() <= 1)
{
return A
}
//
// Scelgo il Pivot prendendo sempre il mediano
int pivot = floor(A.length() / 2)
int PivotValue = A.getValue(pivot)
//
IDArray ALeft = new()
IDArray ARight = new()
//
// Metto a sinistra del pivot tutti gli elementi minori o uguali, a destra
// tutti gli elementi maggiori o uguali
for (int i = 0; i < A.length(); i = i + 1)
{
// Salto il pivot..
if (i == pivot)
{
continue
}
//
// Prendo il j-elemento
int j = A.getValue(i)
//
if (j <= PivotValue)
{
ALeft.addValue(j)
}
else if (j >= PivotValue)
{
ARight.addValue(j)
}
}
//
// Ricorsione: ordino le due partizioni
ALeft = QuickSort(ALeft)
ARight = QuickSort(ARight)
//
// Concateno gli array
IDArray ret = new()
Idmap.Concat(ret, ALeft)
ret.addValue(PivotValue)
Idmap.Concat(ret, ARight)
//
// Restituisco il risultato di questa fase
return ret
}
// Esegue il QuickSort di un array di interi
// *****************************************
public IDArray Idmap.QuickSort(
IDArray A // Array (di interi) da ordinare
)
{
// Se ho un solo elemento: ho già ordinato!
if (A.length() <= 1)
{
return A
}
//
// Scelgo il Pivot prendendo sempre il mediano
int pivot = floor(A.length() / 2)
int PivotValue = A.getValue(pivot)
//
IDArray ALeft = new()
IDArray ARight = new()
//
// Metto a sinistra del pivot tutti gli elementi minori o uguali, a destra
// tutti gli elementi maggiori o uguali
for (int i = 0; i < A.length(); i = i + 1)
{
// Salto il pivot..
if (i == pivot)
{
continue
}
//
// Prendo il j-elemento
int j = A.getValue(i)
//
if (j <= PivotValue)
{
ALeft.addValue(j)
}
else if (j >= PivotValue)
{
ARight.addValue(j)
}
}
//
// Ricorsione: ordino le due partizioni
ALeft = QuickSort(ALeft)
ARight = QuickSort(ARight)
//
// Concateno gli array
IDArray ret = new()
Idmap.Concat(ret, ALeft)
ret.addValue(PivotValue)
Idmap.Concat(ret, ARight)
//
// Restituisco il risultato di questa fase
return ret
}
Ultima modifica: 19/05/2010 / Validità: da 9.1.4040