四種排序演算法的php實現:
1) 插入排序(insertion sort)的基本思想是:
每次將乙個待排序的記錄,按其關鍵字大小插入到前面已經排好序的子檔案中的適當位置,直到全部記錄插入完成為止。
2) 選擇排序(selection sort)的基本思想是:
每一趟從待排序的記錄中選出關鍵字最小的記錄,順序放在已排好序的子檔案的最後,直到全部記錄排序完畢。
3) 氣泡排序的基本思想是:
兩兩比較待排序記錄的關鍵字,發現兩個記錄的次序相反時即進行交換,直到沒有反序的記錄為止。
4) 快速排序實質上和氣泡排序一樣,都是屬於交換排序的一種應用。所以基本思想和上面的氣泡排序是一樣的。
參考:
下面是實現**:
<?php
/** *
* @author quanshuidingdang
* @edit
*/class sort
} /**
* 獲取排序結果
*/public function display()
/*** 初始化
** @param array
* @return bool
*/private function _init($config = array())
return false;
}//初始化成員變數
foreach ($config as $key => $val)
}//呼叫相應的成員方法完成排序
$method = $this->sort . $this->marker;
if ( ! method_exists($this, $method))
return false;
}if ( false === ($this->arr = $this->$method($this->arr)))
return false;
return true;
} /**
* 插入排序
* * @param array
* @return bool
*/private function insert_sort($arr)
return false;
}//具體實現
$count = count($arr);
for ($i = 1; $i < $count; $i++) }}
return $arr;
} /**
* 選擇排序
* * @param array
* @return bool
*/private function select_sort($arr)
return false;
}//具體實現
$count = count($arr);
for ($i = 0; $i < $count-1; $i++)
if ($min != $i)
}return $arr;
} /**
* 氣泡排序
* * @param array
* @return bool
*/private function bubble_sort($arr)
return false;
}//具體實現
$count = count($arr);
for ($i = 0; $i < $count; $i++) }}
return $arr;
} /**
* 快速排序
* * @param array
* @return bool
*/private function quick_sort($arr)
$left_arr = $this->quick_sort($left_arr);
$right_arr = $this->quick_sort($right_arr);
return array_merge($left_arr, array($key), $right_arr);
} /**
* 日誌記錄
*/private function _log($msg)
}/*end of file sort.php*/
/*location htdocs/sort.php */
PHP實現四種基本排序演算法
許多人都說演算法是程式的核心,演算法的好壞決定了程式的質量。作為乙個初級phper,雖然很少接觸到演算法方面的東西。但是對於基本的排序演算法還是應該掌握的,它是程式開發的必備工具。這裡介紹氣泡排序,插入排序,選擇排序,快速排序四種基本演算法,分析一下演算法的思路。許多人都說演算法是程式的核心,演算法...
PHP實現四種基本排序演算法
前提 分別用氣泡排序法,快速排序法,選擇排序法,插入排序法將下面陣列中的值按照從小到大的順序進行排序。arr 1,43,54,62,21,66,32,78,36,76,39 思路分析 在要排序的一組數中,對當前還未排好的序列,從前往後對相鄰的兩個數依次進行比較和調整,讓較大的數往下沉,較小的往上冒。...
PHP實現四種基本排序演算法
許多人都說演算法是程式的核心,演算法的好壞決定了程式的質量。作為乙個初級phper,雖然很少接觸到演算法方面的東西。但是對於基本的排序演算法還是應該掌握的,它是程式開發的必備工具。這裡介紹氣泡排序,插入排序,選擇排序,快速排序四種基本演算法,分析一下演算法的思路。前提 分別用氣泡排序法,快速排序法,...