이 글에서는 주로 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
루프 값이 큰 것에서 작은 것이라면, 큰 것부터 작은 것 순으로 정렬됩니다
<?php //设置默认数组,默认值为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 </n>"; } } ?>
단점:
공간 낭비
부동 소수점 데이터를 정렬할 수 없습니다.
위 내용이 이 글의 전체 내용이기를 바랍니다. 모두의 학습에 도움이 되며, 모두가 PHP 중국어 웹사이트를 지지해 주기를 바랍니다.
Laravel Service Provider를 개발할 때 지연 로딩을 설정할 때 발생하는 문제에 대한 자세한 설명
위 내용은 PHP에서 버킷 정렬 알고리즘 구현에 대한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!