2011-11-07 64 views
0

我想弄清楚如何排序給定的數組,而不使用PHP的內置排序函數。我知道這很困難,但我不被允許使用排序功能。我知道我必須使用循環,但並不確定如何去做。排序數組而不使用排序功能在PHP

+0

聽起來像功課嗎?什麼是價值?請編輯您的問題並添加一些示例數據 –

+4

不妨從最簡單的排序功能開始:http://en.wikipedia.org/wiki/Bubble_sort – onit

+0

這是一個家庭作業嗎?如果是這樣,你應該這樣說。 –

回答

0

你可能想採取這種做法:

  • 創建一個新的空數組。
  • while循環內,反覆查看現有數組。在每一步中,查找下一個要選擇的數組元素。
  • 當您識別它時,將其從舊數組中刪除並將其添加到新陣列中。
  • 重複,直到原始數組爲空。
  • 返回你的新數組。

因爲這聽起來像一個家庭作業練習,所以我把它留給你來完成將這個大綱轉換爲工作代碼的工作。

0

不妨考慮最快的排序馬上:Quicksort

因爲它看起來像作業,所以確保你自己實現它,並真正理解發生了什麼(也要確保你明白爲什麼它如此快速和高效)。這也是對分解和解決問題的方法的一個很好的介紹。

維基百科的僞代碼應該可以幫助您入門,祝您好運!

+1

這裏強調不同排序算法的效率似乎很愚蠢。這大概是一個練習,讓學生思考如何使用循環以及如何讓計算機指令遵循;在實踐中,如果你想用PHP來分類,你只需要使用其中一個標準庫函數來完成。如果真的需要對很多東西進行分類並且有效地做到這一點,那麼說實話,你可能根本不會使用PHP。 – Hammerite

+0

考慮到整理的重點是要高效地完成它,我認爲開始嘗試瞭解爲什麼一種算法儘可能早地優於另一種算法是一個好主意。是不是自己實施它來理解發生了什麼的全部重點? –

+0

但是,如果您試圖教導如何高效地完成任務,爲什麼要使用PHP? – Hammerite