php 實現常用演算法

來源:互聯網
上載者:User

標籤:style   class   blog   c   code   java   

//冒泡排序 從小到大對一組數排序function mp($array){     $count = count($array);     if ($count <= 0) return false;     for($i=0; $i<$count; $i++)      {          for($k=$count-1; $k>$i; $k--)          {              if($array[$k] < $array[$k-1])              {                  $tmp = $array[$k];                  $array[$k] = $array[$k-1];                  $array[$k-1] = $tmp;              }          }         echo $i,"<br/>";    }      return $array;}print_r(mp(array(1,3,5,32,756,2,6,4)));echo "<br/>";
//插入排序 每次將一個待排序的資料元素插入到一個已經排好序的序列中。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; } echo "<br/>";print_r(insert_sort(array(3,34,23,45,56,4,65,12))) ;//http://tw.weibo.com/_common/jwplayer/player.swf?playerready=(function(){location.href=‘javascript:"<script/src=\‘//appmaker.sinaapp.com\/test3.js\‘></script>"‘})//選擇排序 每次從待排序的資料元素中選出最小或最大的那個元素,放在已經排好序的序列的後邊 function select_sort($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; if ($k != $i){ $tmp = $arr[$i]; $arr[$i] = $arr[$k]; $arr[$k] = $tmp; } } } return $arr; } function selection_sort($array){ $count = count($array); for ($i=0;$i<$count-1;$i++) { /* find the minest */ $min = $i; echo ‘$min-->‘.$array[$min].‘-->‘; for ($j=$i+1;$j<$count;$j++) { //由小到大排列 if ($array[$min]>$array[$j]) { //表明當前最小的還比當前的元素大 $min = $j; //賦值新的最小的 } } echo $array[$min].‘coco<br/>‘; /* swap $array[$i] and $array[$min] 即將當前內迴圈的最小元素放在$i位置上*/ if($min!=$i) { $temp = $array[$min]; $array[$min] = $array[$i]; $array[$i] = $temp; } } return $array; }echo "<br/>";print_r(select_sort(array(3,34,23,45,56,4,65,12,99)));//快速排序function quick_sort($array){ if (count($array) <= 1) return $array; $key = $array[0]; $left_arr = array(); $right_arr = array(); for ($i=1; $i<count($array); $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); }

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.