PHP 기수정렬 구현

1 개요[ | ]

PHP 기수정렬 구현
<?php
function radix_sort(&$a, $base=10) {
    $max = max($a);
    $size = count($a);
    for($exp=1; $exp<=$max; $exp*=$base) {
    	$count = array_fill(0,$base,0);
    	$output = array_fill(0,$size,0);
    	for($i=0; $i<$size; $i++) $count[intdiv($a[$i],$exp)%$base]++;
    	for($i=1; $i<$base; $i++) $count[$i]+=$count[$i-1];
    	for($i=$size-1; $i>-1; $i--) {
    		$j = intdiv($a[$i],$exp) % $base;
    		$output[$count[$j]-1] = $a[$i];
    		$count[$j]--;
    	}
    	for($i=0; $i<$size; $i++) $a[$i]=$output[$i];
    }
}
$arr = [9,1,22,4,0,1,22,100,10];
radix_sort( $arr );
echo implode(',',$arr);
# 0,1,1,4,9,10,22,22,100

2 같이 보기[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}