再談鏈表排序

      前兩天去面試,有一道題目是關於鏈表排序的,當時就用了個以前的方法,把鏈表存到一個數組裏,再對數組排序,再還原鏈表,後來面試官說這個效率太低了,回來想想也是,就算個笨方法吧,所以覺得自己應該鍛鍊下,寫了比較通用的,快捷的鏈表排序算法,便有了下面程序。

      算法本質很簡單,模擬數組的交換排序,但是比簡單的數組排序要複雜,因爲你要對需要交換的節點的前一節點和後一節點進行操作,要判斷a是不是頭結點,當不是的時候還需要判斷a的下一個節點是不是b,至於爲什麼,大家想一想就明白了,最後還要將a和b還原到原來的節點位置,以便下面的循環操作。註釋的部分是在節點信息很少或已知的情況下直接進行交換。

       本文有不足之處,還望大家多多指正。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章