Quick sorting functionquicksort ($ arr, $ lo0, $ hi0) {$ lo $ lo0; $ hi $ hi0; $ flagtrue; $ tmp0; if ($ lo & gt; $ hi) {return;} while ($ lo! $ Hi) {if ($ arr [$ lo] & gt; $ arr [$ quick sort
Function quicksort ($ arr, $ lo0, $ hi0 ){
$ Lo = $ lo0;
$ Hi = $ hi0;
$ Flag = true;
$ Tmp = 0;
If ($ lo> $ hi ){
Return;
}
While ($ lo! = $ Hi ){
If ($ arr [$ lo]> $ arr [$ hi]) {
$ Tmp = $ arr [$ lo];
$ Arr [$ lo] = $ arr [$ hi];
$ Arr [$ hi] = $ tmp;
$ Flag = ($ flag = true )? False: true;
}
If ($ flag ){
$ Lo ++;
} Else {
$ Hi --;
}
}
$ Lo --;
$ Hi ++;
Quicksort ($ arr, $ lo0, $ lo );
Quicksort ($ arr, $ hi, $ hi0 );
}
$ Arr = array (5, 4, 2, 6, 8, 1, 10, 9 );
Quicksort ($ arr, 0, count ($ arr)-1 );
For ($ I = 0; $ I
Echo "arr [$ I] =". $ arr [$ I]."
";
}
The red part above cannot be determined. it is depressing ..
------ Solution --------------------
Not if ($ arr [$ lo]> $ arr [$ hi]) {judgment is invalid
Instead, the action for exchanging array elements is not saved.
Function quicksort (& $ arr, $ lo0, $ hi0 ){
Just upload the reference
------ Solution --------------------
The function has no return value. you need
Function quicksort (& $ arr, $ lo0, $ hi0) // & reference