1. use PHP to describe bubble sorting and quick sorting algorithms. The object can be an array. using PHP to describe sequential search and binary search (also called semi-query) algorithms, efficiency must be considered for sequential search. The object can be an ordered array 3. write a two-dimensional array sorting algorithm function... "> <LINKhref =" http://www.php100.com//statics/style/h
1. Use PHP to describe the bubble sort and quick sort algorithms. The object can be an array.
2. Using PHP to describe sequential search and binary search (also called semi-query) algorithms, sequential search must take efficiency into account. The object can be an ordered array.
3. Write a two-dimensional array sorting algorithm function that is universal and can call php built-in functions.
[Attached answer] (the answer below is not necessarily the best, but a simple reference)
I. Basic questions
1. Equal and unequal
2. true false
3. aaaaaa
4. 5 0 1
5. 5 2
6. 1 2
7. Get the extension of a file in more than five ways
Function get_ext1 ($ file_name ){
Return strrchr ($ file_name ,'.');
}
Function get_ext2 ($ file_name ){
Return substr ($ file_name, strrpos ($ file_name ,'.'));
}
Function get_ext3 ($ file_name ){
Return array_pop (explode ('.', $ file_name ));
}
Function get_ext4 ($ file_name ){
$ P = pathinfo ($ file_name );
Return $ p ['extension'];
}
Function get_ext5 ($ file_name ){
Return strrev (substr (strrev ($ file_name), 0, strpos (strrev ($ file_name ),'.')));
}
II. Algorithm questions
1. Use PHP to describe the bubble sort and quick sort algorithms. The object can be an array.
// Bubble sort (array sorting)
Function bubble_sort ($ 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]) {
$ Tmp = $ array [$ j];
$ Array [$ j] = $ array [$ j-1];
$ Array [$ j-1] = $ tmp;
}
}
}
Return $ array;
}
// Fast sorting (array sorting)
Function quick_sort ($ 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 = quick_sort ($ left_arr );
$ Right_arr = quick_sort ($ right_arr );
Return array_merge ($ left_arr, array ($ key), $ right_arr );
}
2. Using PHP to describe sequential search and binary search (also called semi-query) algorithms, sequential search must take efficiency into account. The object can be an ordered array.
// Binary search (find an element in the array)
Function bin_sch ($ array, $ low, $ high, $ k ){
If ($ low <= $ high ){
$ Mid = intval ($ low + $ high)/2 );
If ($ array [$ mid] === k ){
Return $ mid;
} Elseif ($ k <$ array [$ mid]) {
Return bin_sch ($ array, $ low, $ mid-1, $ k );
} Else {
Return bin_sch ($ array, $ mid + 1, $ high, $ k );
}
}
Return-1;
}
// Sequential search (find an element in the array)
Function seq_sch ($ array, $ n, $ k ){
$ Array [$ n] = $ k;
For ($ I = 0; $ I <$ n; $ I ++ ){
If ($ array [$ I] === k ){
Break;
}
}
If ($ I <$ n ){
Return $ I;
} Else {
Return-1;
}
}
3. Write a two-dimensional array sorting algorithm function that is universal and can call php built-in functions.
// Two-dimensional array sorting. $ arr indicates data, $ keys indicates the key value of sorting, $ order indicates sorting rules, 1 indicates ascending, and 0 indicates descending.
Function array_sort ($ arr, $ keys, $ order = 0 ){
If (! Is_array ($ arr )){
Return false;
}
$ Keysvalue = array ();
Foreach ($ arr as $ key => $ val ){
$ Keysvalue [$ key] = $ val [$ keys];
}
If ($ order = 0 ){
Asort ($ keysvalue );
} Else {
Arsort ($ keysvalue );
}
Reset ($ keysvalue );
Foreach ($ keysvalue as $ key => $ vals ){
$ Keysort [$ key] = $ key;
}
$ New_array = array ();
Foreach ($ keysort as $ key => $ val ){
$ New_array [$ key] = $ arr [$ val];
}
Return $ new_array;
}