>  기사  >  백엔드 개발  >  PHP는 버킷 정렬 알고리즘을 구현합니다.

PHP는 버킷 정렬 알고리즘을 구현합니다.

jacklove
jacklove원래의
2018-05-22 17:39:151633검색

이 글에서는 PHP에서 버킷 정렬 알고리즘을 구현하는 방법을 설명합니다.

간단한 의미의 버킷 정렬:

버킷 정렬의 원리는 데이터 범위가 N인 경우 먼저 N+1 버킷을 컨테이너로 배열하는 것입니다.

그런 다음 테스트 데이터(정렬할 데이터)를 루프하여 해당 버킷에 넣습니다. 데이터는 N 범위 내에 있어야 합니다.

마지막으로 버킷의 요소를 반복하고 출력하여 큰 것에서 작은 것 또는 작은 것에서 큰 것으로 정렬합니다.

예:

값 범위가 10이면 길이가 11인 $arr 배열을 정의해야 합니다. 그리고 모든 요소 값을 ​​​​0

그런 다음 필요한 배열을 반복합니다. 5,3,5,2,8과 같이 정렬됩니다. (여기서 값 범위는 실제로 8입니다.)

$arr 버킷 배열의 요소에 순차적으로 해당합니다. 즉, 5인 경우 $arr을 만듭니다. [5]++.

이때 $arr[2]=1 $arr[3]=1 $arr[5]=2 $arr[8]=1

그런 다음 $arr의 배열을 반복합니다. $arr[2]=1, 그런 다음 출력 요소 2로 루프 한 번, $arr[5]=2, 루프는 5를 두 번 출력합니다

결과 출력은 2 3 5 5 8

루프 값이 큰 경우 작은 것부터 큰 것부터 작은 것으로 정렬됩니다

// 기본 배열을 설정합니다. 기본값은 0입니다.

$arr = array();
 
for ($i = 0; $i <= 10; $i++) {
 
$arr[$i] = 0;
 
}
 
//设置测试的五个数据
 
$arr1 = array(5, 3, 5, 2, 8);
 
//根据数据 对默认数组的对应元素进行+1; J的取值范围不能等于$arr1数组长度
 
for ($j = 0; $j < count($arr1); $j++) {
 
//这边给相应的数组值+1
 
$arr[$arr1[$j]]++;
 
}
 
//开始循环输出 默认数组 $arr 里面相应的值
 
for ($k = 0; $k <= 10; $k++) {
 
for ($l=1; $l <=$arr[$k]; $l++) {
 
echo "$k ";
 
}
 
}
 
?>

이 문서에서는 PHP에서 버킷 정렬 알고리즘을 구현하는 방법을 설명합니다. PHP 중국어 웹사이트에 주목하세요.

관련 권장 사항:

thinkPHP5 프레임워크 데이터베이스 일관성 작업: 캐시() 사용 세부 정보

PHP 인터페이스 다중 상속 및 타릿은 다중 상속 효과를 달성하기 위한 튜토리얼 세부 정보

PHP 특정 연도 주 시작일 및 종료일 튜토리얼

위 내용은 PHP는 버킷 정렬 알고리즘을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.