Selection sort: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m →Implementazioni: usa stesso algoritmo dappertutto |
|||
Riga 14:
=== [[C (linguaggio)|C]] ===
<source lang="C">
void selection(double a[], unsigned long N) {
int i, j, min; ▼
double t;▼
for (i=0; i < N-1; i++) {
min = i;
t = a[min];
Riga 31 ⟶ 30:
}
}
</
<!--
====Implementazione Alternativa====
<nowiki>
void selection(double a[], unsigned long N) {
int i, j;
▲ double t;
▲int i, j;
for (i=0; i < N-1; i++) {
Riga 49 ⟶ 48:
}
}
</nowiki> -->
=== [[linguaggio Java|Java]] ===
<source lang="Java">
</
=== [[Pascal (linguaggio)|Pascal]] ===
<source lang="Pascal">
const dim=20;
procedure SelectionSort(var a: array[1..dim] of integer);
var
n,i,j,pos,min,aus:integer;
begin
for i:=1 to n-1 do begin
for j:=(i+1) to n do
if a[j]<
pos:= j;
end;▼
aus:= a[i];
a[i]:=
a[pos]:= aus;
end;
</source>
<source lang="PHP">
▲===[[PHP|PHP]]===
function selection_sort(&$a) {
for($i = 1; $i < count($a)-1; $i++) {
$min_index = $j;
for($j = $i + 1; $j < count($a); $j++)
if ($
$
$array[$i] = $transfer;
}
}
== Analisi delle prestazioni ==
Il ciclo interno è un semplice test per confrontare l'elemento corrente con il minimo elemento trovato fino a quel momento (più il codice per incrementare l'indice dell'elemento corrente e per verificare che esso non ecceda i limiti dell'array). Lo spostamento degli elementi è fuori dal ciclo interno: ogni scambio pone un elemento nella sua posizione finale quindi il numero di scambi è pari a <math> N-1</math> (dato che l'ultimo elemento non deve essere scambiato). Il tempo di calcolo è determinato dal numero di confronti.
|