首頁 >後端開發 >php教程 >簡單排序演算法 java排序演算法 排序演算法總結 堆排序算

簡單排序演算法 java排序演算法 排序演算法總結 堆排序算

WBOY
WBOY原創
2016-07-29 08:52:551443瀏覽

$arr = array(
    12,
    45,
    89,
     76,
    22,
    11,
    28,
    112,
    20,
   ,
    23,
    65,
    65,
    765,
    6, 33,
    553,
    45,
    423,
    64,
     ;
/**
 * 冒泡排序演算法,時間複雜度n2/2次
 * 冒泡排序的基本概念是:依序比較相鄰的兩個數,將小數放在前面,大數放在後面。即在第一趟:先比較第1個和第2個數,將小數放前,大數放後。
 * 然後比較第2個數和第3個數,將小數放前,大數放後,如此繼續,直至比較最後兩個數,將小數放前,大數放後。至此第一趟結束,將最大的數放到了最 後。
 * 在第二趟:仍從第一對數開始比較(因為可能由於第2個數和第3個數的交換,使得第1個數不再小於第2個數),將小數放前,大數放後,一直比較到倒數第二個數
 * (倒數第一的位置上已經是最大的),第二趟結束,在倒數第二個數的位置上得到一個新的最大數(其實在整個數列中是第二大的數)。如此下去,重複以上過 程,
 * 直至最終完成排序。
 */
function maopao_sort($arr)
{
    $count = count($arr);
    $tmp;          for ($j = 0; $j         $j + 1]) {
                $tmp = $arr[$j];
                   $arr[$j + 1] = $tmp;
            }
            $m ++;
        }
    }
    print_r($arr)); sort($arr)
{
    $count = count($arr );
    $tmp;
    $m = 0; // 用於計算執行多少次
    for ($i = 0; $i ;   for ($j = $i + 1; $j             if ($arr[$p] > $arr[$j]) {
         }
$m ++;
        }
        if ($p != $i) {
         = $arr[$i];
            $arr[$i ] = $tmp;
        }
    }
    print_r($arr);
    echo $m; ($arr) ;
    $tmp;
    $m = 0; // 用來計算執行多少次
    for ($i = 1; $i    
        for ($j = $i - 1; $j >= 0; $j --) {
             1] = $arr[ $j];
                $arr[$j] = $tmp;
                      }
            $m ++;
        }
/ **
 * 快速排序演算法,時間複雜度n2/2次
 * 此方法的基本想法是:
 * 1.先從數列中取出一個數字作為基準數。
 * 2.分區過程,將比這個數大的數全放到它的右邊,小於或等於它的數全放到它的左邊。
 * 3.再對左右區間重複第二步,直到各區間只有一個數。
 */
function Quick_sort($arr)
{
    $count = count($arr);
   if ($count     $left_array = array();
    $right_array = array();
    
    ) {
            $left_array[] = $arr[$i];
        } else {
      }
        $m ++;
    }
   
    $left_array =快速排序( $left_array);
    $right_array = fast_sort($right_array);
    return array_merge($left_array, array(
   right $c (quick_sort($arr));
/ / / print_r(quickSort($arr));
function fastpaixu($arr)
{
    $count = count($arr);
   $arr[0]; // 取一個值,稍後用來比較;
    $left_arr = array();
    $right_arr = array();
    for ($i = 1; $i         if ($arr[$i]            [] = $arr[$i];
        }
    }
    $left_arr = Quickpaixu($left_arr); // 遞歸;
    $right_arr = Quickpaixu($right_arr);
    return array_merge($left_arr, array(
     // 將左中右的數值合併成一份;
} // 以下是測試
  // print_r(quickpaixu($arr));
?>
以上就介紹了簡單的排序演算法,包含排序演算法、簡單方面的內容,希望對PHP教學有興趣的朋友有幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn