function CountingSort-Object
{
param(
[int[]]$in
)
$max = ($in | measure -Maximum).Maximum +1
$count=@(0) * $max #initialization
$in | %{
$count[$_]++
}
$out=@()
$count | % {$i=0 }{
if($_ -gt 0)
{
$out+= (@($i) * $_)
}
$i++
}
return $out
}
Przykład użycia jest poniżej
CountingSort-Object 11,2,5,4,5,11,0,19,0 CountingSort-Object (1..100| random -Count 10)
Tak się zastanawiam czy można dodać tablicę $out2, która będzie zawierała ilość liczb ujemnych? Wtedy możemy rozszerzyć dziedzinę z liczb naturalnych do licz całkowitych.
Brak komentarzy:
Prześlij komentarz