Home >Backend Development >PHP Tutorial >Ovulation period calculation method Review and summary of PHP sorting algorithm
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
$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--)
{
//
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.