Home >Backend Development >PHP Tutorial >PHP sorting algorithm? PHP sorting classic algorithm_PHP tutorial
This article will summarize some good PHP sorting algorithms for you. I hope these algorithms will be helpful to all students.
The code is as follows | Copy code | ||||
1. Bubble algorithm, sorting algorithm, because in the sorting process, small numbers are always placed forward and large numbers are placed backward, which is equivalent to bubbles rising, so it is called bubble sort <🎜>$array = array(a,f,c,b,e,h,j,i,g); <🎜> function maopao_fun($array){ <🎜> if($len <= 1) { <🎜> return $arr; <🎜> } <🎜> $count = count($array); <🎜> 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; } 2. Quick sort, Quicksort is an improvement on bubble sort. Proposed by C. A. R. Hoare in 1962. Its basic idea is to divide the data to be sorted into two independent parts through one sorting pass. All the data in one part is smaller than all the data in the other part, and then the two parts of the data are quickly sorted in this way, The entire sorting process can be performed recursively, so that the entire data becomes an ordered sequence. function quickSort($arr){ $len = count($arr); if($len <= 1) { <🎜> return $arr; <🎜> } <🎜> $key = $arr[0]; <🎜> $left_arr = array(); <🎜> $right_arr = array(); <🎜> for($i=1; $i<$len; $i++){ <🎜> If($arr[$i] <= $key){ <🎜> $left_arr[] = $arr[$i]; <🎜> <🎜> $right_arr[] = $arr[$i]; <🎜> } <🎜> } <🎜> $left_arr = quickSort($left_arr); <🎜> $right_arr = quickSort($right_arr); <🎜> return array_merge($left_arr, array($key), $right_arr); <🎜> } |
3.Select sort
Each pass selects the smallest (or 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. Selection sort is an unstable sorting method
The code is as follows | Copy code | ||||||||
|
The code is as follows | Copy code |
function insert_sort($arr){ $count = count($arr); for($i=1; $i<$count; $i++){ <🎜> <🎜> $tmp = $arr[$i]; <🎜> <🎜> $j = $i - 1; <🎜> <🎜> while($arr[$j] > $tmp){ $arr[$j+1] = $arr[$j]; $arr[$j] = $tmp; $j--; } } return $arr; } $arr = array(49,38,65,97,76,13,27); print_r(insert_sort($arr)); |
PHP implementation of four sorting algorithms
1) The basic idea of Insertion Sort is:
Each time a record to be sorted is inserted into the appropriate position in the previously sorted sub-file according to its key size, until all records are inserted.
2) The basic idea of Selection Sort is:
In each pass, the record with the smallest keyword is selected from the records to be sorted and placed at the end of the sorted sub-file until all records are sorted.
3) The basic idea of bubble sort is:
Compare the keywords of the records to be sorted pairwise, and if it is found that the order of the two records is reversed, they will be exchanged until there are no records in the reverse order.
4) Quick sort is essentially the same as bubble sort, and is an application of exchange sort. So the basic idea is the same as the bubble sort above.
代码如下 | 复制代码 |
/** return array_merge($left_arr, array($key), $right_arr); /*End of file sort.php*/ |