Home > Backend Development > PHP Tutorial > Ovulation period calculation method Review and summary of PHP sorting algorithm

Ovulation period calculation method Review and summary of PHP sorting algorithm

WBOY
Release: 2016-07-29 08:48:03
Original
1017 people have browsed it

Just jump into the code!

Copy the code The code is as follows:


/*
* Insertion sort (one-dimensional array)
* Each time, one data element to be sorted is inserted into the previously sorted The appropriate position in the array keeps the array in order; until all the data elements to be sorted are inserted.
*/
function 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]; //Get the value of the next element
  $j = $i - 1; //Get the previous subscript
  while($arr[$j] > $tmp){ //If the previous one is larger than the last one, here is the order from small to large
  $arr[ $j+1] = $arr[$j]; //Swap the small element with the previous one until it moves to the appropriate position, then move the next one
   $arr[$j] = $tmp;
  $j --;
  }
}
}
return $arr;
}
/*
* Selection sort (one-dimensional array)
* Each pass selects the smallest (largest) element from the data elements to be sorted, The order is placed at the end of the sorted array until all data elements to be sorted are arranged.
*/
function selectSort($arr){
if(!is_array($arr) || count($arr) == 0)
{
return $arr;
}
$count = count($arr);
for($i=0; $i<$count; $i++){
$k = $i;
for($j=$i+1; $j<$count; $j++){
 if ($ arr[$k] > $arr[$j])
   $k = $j; //Find the smallest
  if ($k != $i){
   $tmp = $arr[$i];
$arr[$i] = $arr[$k];
   $arr[$k] = $tmp;
  }
}
}
}
return $arr;
}
/* 
* Bubble sort (one-dimensional array )
* Compare the sizes of the data elements to be sorted pairwise. If it is found that the order of the two data elements is reversed, exchange it until there are no reversed data elements.
*/
function bubbleSort($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]){ //Compare the found numbers for exchange
  $tmp = $array[$j ];
  $array[$j] = $array[$j-1];
 Quick sort (one-dimensional array)
*
*/
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);
}
/**
* Sort by the value of the elements
* strOrder is the order of sorting asc ascending order desc descending order
*/
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)
{
//The order of creating keys Array
for($key=0;$key<$count;$key++)
{
$arrKeyMap[$key] = $key;
}
//Sort the values ​​
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;
//Bubble sorting of values, causing Interaction of key array
$keytmp = $arrKeyMap[$j];
$arrKeyMap[$j] = $arrKeyMap[$j-1];
$arrKeyMap[$j-1] = $keytmp;
}
}
}
if(count($arrKeyMap))
{
foreach ($arrKeyMap as $val)
{
$arrReturn[] = $arrKey[$val];
}
}
return $arrReturn;
}
}
/**
* Use native functions to arrange arrays by value
*/
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);
}
reset($keysvalue);
foreach ($keysvalue as $k=>$v){
$new_array[$k] = $arr[$k];
}
return $new_array;
}


For the following two methods of sorting array values, one is implemented by oneself and the other is using a native PHP function. In fact, sorting is still possible for a small amount of data, generally a single page of data, if it involves For sorting a large amount of data, it is recommended to integrate it into the basic class of MYSQL.

The above has introduced the review and summary of the ovulation period calculation method and the PHP sorting algorithm, including the ovulation period calculation method. I hope it will be helpful to friends who are interested in PHP tutorials.

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template