開篇學計算機的好像都要學演算法與資料結構,在演算法書裡面《演算法導論》 應該算是經典之作了。我希望能在2023年好好的拜讀這本書,當然他太厚了,也許需要更長的時間去揣摩。如同武功秘籍,需要些悟性,還需要平時上手練一練,比劃比劃。
php是我目前吃飯用的傢伙,所以用php這件兵器來修煉《演算法導論》這部秘笈,以希望自己的內力可以有所提高。
如果各位前輩,發現我出了什麼錯誤,那麼請在鄙視和嗤笑過後直接指出我的錯誤。感激不盡。
插入排序——insertion-sort演算法導論的第二章開篇詳細介紹了插入排序的原理。php的實現如下:
/*** insertion-sort
** @param array $a
* @return array
*/function insertionsort($a=array())
$a[$i+1] = $key;
} return $a; }
在2.1節後面的練習題裡2.1-2要求重寫插入排序以非遞增的順序排序。照葫蘆畫瓢:
/*** sort into nonincreasing
** @param array $a
* @return array
*/function insertionsortdesc( $a = array ())
$a [ $i +1] = $key ;
} return
$a ; }
當然在函式之後最好能進行一下測試,沒那麼嚴格,大概是個意思吧:
function test()
test();
把測試檔案和上面兩個函式放到一起,跑一下吧~乙個公升序乙個降序。
祝看到帖子的人元旦快樂~!
演算法導論 插入排序
introduction to algorithms second edition chapter2,insertion sort date 2014 9 14 include include include define max 50 typedef struct sortarr 直接插入排序 i...
演算法導論 插入排序
插入排序應該算是比較好理解的一種了,原理類似於我們打牌的時候,摸牌插入手中的情景。來看一下圖,立刻就明白了 我們將乙個陣列int a 12 看做一副撲克牌,假設陣列有12個數,那麼撲克牌也一共有十二張,放在一起開始 我們先抽一張拿到手上,這時候,我們不需要排序,因為不論哪一張先被我們抽上來,不論大小...
演算法導論 插入排序
對於只有乙個元素的陣列,本身為已序。對於兩個元素的a,認為 a0 為已序,a1為key 若key a0 則將key 放到a0後。若不是,後移a0 對於多個元素的陣列 考慮將key 插入到已序的 a0 aj a0 a1 a2.中,可以將key 與aj a0 逐個比較,並後移,直到遇到乙個比key 小的...