> 백엔드 개발 > PHP 튜토리얼 > 배란일 계산 방법 PHP 정렬 알고리즘 검토 및 요약

배란일 계산 방법 PHP 정렬 알고리즘 검토 및 요약

WBOY
풀어 주다: 2016-07-29 08:48:03
원래의
994명이 탐색했습니다.

그냥 코드로 뛰어들어보세요!

코드 복사 코드는 다음과 같습니다.


/*
* 삽입 정렬 (1차원 배열)
* 매번 이전에 정렬된 배열의 적절한 위치에 정렬할 데이터 요소를 하나씩 삽입하여 정렬할 모든 데이터 요소가 삽입될 때까지 배열이 순서대로 유지되도록 합니다.
*/
함수 insertSort($arr){
if(!is_array($arr) || count($arr)==0){
return $arr; 🎜>$count = count($arr);
for($i=1; $i<$count; $i ){
if(isset($arr[$i])){
$tmp = $arr[$i]; //다음 요소의 값을 가져옵니다.
$j = $i - 1 //이전 첨자를 가져옵니다.
while($arr[$j] > $ tmp){ //앞쪽 요소가 뒤쪽 요소보다 큰 경우, 여기서는 작은 요소에서 큰 요소 순으로
  $arr[$j 1] = $arr[$j] //작은 요소를 이전 요소와 교환합니다. 하나 움직일 때까지 해당 위치로 가서 다음으로 이동
  $j--
  }
}
}
return $arr;
}
/*
* 선택 정렬(1차원 배열)
* 각 패스에서는 정렬할 데이터 요소 중 가장 작은(가장 큰) 요소를 선택하여 정렬할 모든 데이터 요소가 정렬될 때까지 배열 끝에 정렬 순서가 지정됩니다.
*/
function selectSort($arr){
if(!is_array($arr) || count($arr) == 0)
{
return $arr; >}
$count = 개수($arr);
for($i=0; $i<$count; $i ){
$k = $i
for($j; =$i 1; $j<$count; $j ){
 if ($arr[$k] > $arr[$j])
 $k = $j; 🎜> if ($k != $i){
$tmp = $arr[$i]
$arr[$i] = $arr[$k]
$arr[$ k ] = $tmp;
  }
}
}
return $arr;
}
/* 
* 버블 정렬(1차원 배열)
* 비교 쌍으로 정렬할 데이터 요소의 크기입니다. 두 데이터 요소의 순서가 반대인 것으로 확인되면 반전된 데이터 요소가 없을 때까지 서로 바꿉니다.
*/
function bubbleSort($array) {
$count = count($array);
if ($count <= 0) {
return false
}
for($i=0; $i<$ $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;
}
/*
* 퀵 정렬(1차원 배열)
*
* /
function QuickSort($array){
if (count($array) <= 1){
return $array;
}
$key; = $array[0];
$left_arr = array();
$right_arr = array()
for ($i=1; $i if ($array [$i] <= $key){
 $left_arr[] = $array[$i]
 }else{
$right_arr[] = $array[ $i]; }
}
$left_arr =quickSort($left_arr);
$right_arr =quickSort($right_arr)
return array_merge($left_arr, array($key) , $right_arr)
}
/**
* 요소 값으로 정렬
* strOrder는 오름차순, desc 내림차순으로 정렬하는 순서입니다.
*/
function sortByVal($arr,$strOrder='asc')
{
if(!is_array($arr) ) || count($arr )==0)
{
return $arr;
}
$arrReturn = array()
foreach($arr as $key=> $val)
{
$arrKey[] = $key;
$arrVal[] = $val
}
$count = count($arrVal)
if( $count)
{
//키의 순차적 배열 생성
for($key=0;$key<$count;$key )
{
$arrKeyMap[$key] = $key;
}
//값 정렬
for($i=0;$i<$count;$i )
{
for($j = $count- 1; $j>$i ;$j--)
{
//<여기서 작은 것부터 큰 것까지 오름차순과 내림차순을 수정합니다
$bol = $strOrder == 'asc' ? $arrVal[$j]<$arrVal[ $j-1] : $arrVal[$j]>$arrVal[$j-1]
if($bol){
$tmp = $ arrVal[$j];
$arrVal [$j] = $arrVal[$j-1];
$arrVal[$j-1] = $tmp
//값 버블 정렬, 키 배열의 상호작용 유발
$ keytmp = $arrKeyMap[$j]
$arrKeyMap[$j] = $arrKeyMap[$j-1]
$arrKeyMap[$j-1] = $ keytmp;
}
}
}
if(count($arrKeyMap))
{
foreach($arrKeyMap as $val)
{
$arrReturn[ ] = $arrKey[$val];
}
}
return $arrReturn;
}
}
/**
* 기본 함수를 사용하여 값별로 배열 정렬
*/
function arraySortByVal($ arr,$keys,$type=' asc'){
$keysvalue = $new_array = array()
foreach ($arr as $k=>$v){
$keysvalue[$ k] = $v[$keys] ;
}
if($type == 'asc'){
asort($keysvalue)
}else{
arsort($keysvalue );
}
재설정($keysvalue)
foreach($keysvalue as $k=>$v){
$new_array[$k] = $arr[$k]; 🎜>}
$new_array 반환
}


배열 값을 정렬하는 다음 두 가지 방법의 경우 하나는 자체적으로 구현되고 다른 하나는 기본 PHP 함수를 사용하는 것입니다. 실제로 작은 양의 데이터, 일반적으로 단일 페이지의 데이터에 대해서는 정렬이 가능합니다. 대량의 데이터를 정렬하는 경우 MYSQL의 기본 클래스에 통합하는 것이 좋습니다.

이상에서는 배란기간 계산방법을 포함한 배란기간 계산방법과 PHP 정렬 알고리즘에 대한 리뷰와 요약을 소개하였습니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되었으면 좋겠습니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿