그냥 코드로 뛰어들어보세요!
코드 복사 코드는 다음과 같습니다.
/*
* 삽입 정렬 (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
$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 튜토리얼에 관심이 있는 친구들에게 도움이 되었으면 좋겠습니다.