>백엔드 개발 >PHP 튜토리얼 >PHP 버블 정렬 이진 검색 순차 검색 2차원 배열 정렬 알고리즘 기능에 대한 자세한 설명

PHP 버블 정렬 이진 검색 순차 검색 2차원 배열 정렬 알고리즘 기능에 대한 자세한 설명

高洛峰
高洛峰원래의
2016-12-22 11:03:461574검색

데이터 구조는 매우 중요합니다. 알고리즘 + 데이터 구조 + 문서 = 프로그램
PHP를 사용하여 버블 정렬 알고리즘을 설명하고 객체는 배열일 수 있습니다.

//冒泡排序(数组排序)
function bubble_sort($array) {
$count = count($array);
if ($count <= 0)
return false;
for($i=0; $i<$count; $i++){
for($j=$count-1; $j>$i; $j–){
if ($array[$j] < $array[$j-1]){
$tmp = $array[$j];
$array[$j] = $array[$j-1];
$array[$j-1] = $tmp;
}
}
}
return $array; }

PHP를 사용하여 순차 검색을 설명합니다. 및 이진 검색(반 검색이라고도 함) 알고리즘, 순차 검색은 효율성을 고려해야 하며 개체는 순서가 지정된 배열일 수 있습니다

//二分查找(数组里查找某个元素)
function bin_sch($array, $low, $high, $k){
if ($low <= $high){
$mid = intval(($low+$high)/2);
if ($array[$mid] == $k){
return $mid;
}elseif ($k < $array[$mid]){
return bin_sch($array, $low, $mid-1, $k);
}else{
return bin_sch($array, $mid+1, $high, $k);
}
}
return -1;
}
//顺序查找(数组里查找某个元素)
function seq_sch($array, $n, $k){
$array[$n] = $k;
for($i=0; $i<$n; $i++){
if($array[$i]==$k){
break;
}
}
if ($i<$n){
return $i;
}else{
return -1;
}
}

범용이 가능한 2차원 배열 정렬 알고리즘 함수를 작성하면 다음과 같은 작업을 수행할 수 있습니다. PHP 내장 함수 호출

//二维数组排序, $arr是数据,$keys是排序的健值,$order是排序规则,1是升序,0是降序
function array_sort($arr, $keys, $order=0) {
if (!is_array($arr)) {
return false;
}
$keysvalue = array();
foreach($arr as $key => $val) {
$keysvalue[$key] = $val[$keys];
}
if($order == 0){
asort($keysvalue);
}else {
arsort($keysvalue);
}
reset($keysvalue);
foreach($keysvalue as $key => $vals) {
$keysort[$key] = $key;
}
$new_array = array();
foreach($keysort as $key => $val) {
$new_array[$key] = $arr[$val];
}
return $new_array;
}

PHP 버블 정렬 이진 검색 순서 검색 2차원 배열 정렬 알고리즘 기능에 대한 자세한 설명은 PHP 중국어 웹사이트를 참고하세요!

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