2012-12-13 60 views
0

這當前只是一種內涵,但它困擾着我的大腦。對一個沒有計數器的列表進行排序

如果我有一個項目清單 - 在我心中這是一個HTML/JS實現,但是這只是因爲我是一個視覺思想家;)

我想使用拖放排序這個列表中,目的是在我完成時存儲新訂單。有沒有辦法做到這一點,沒有編號的項目,然後更新被刪除的項目+每個單項跟隨它的數量?這不是非常低效?

+1

所有這取決於你如何做存儲部分我猜 – musefan

+0

'排序'你需要決定一個順序的東西..你想按字母順序排序或通過連續出版物等您的標準是什麼? – SajjadHashmi

+0

排序將是一個手動程序,所以沒有預定義的標準。 –

回答

3

就性能而言,改變元素的編號並不代表實際呈現過渡(當您拖動元素時),所以不,效率不高。

您可以使用doubly linked list以最小化更改集合順序所需的操作量。

+0

鏈接列表絕對是我的第一個想法。好的解決方案 – wrhall

+0

這是一個很好的解決方案,有趣的閱讀。 – Cerbrus

0

如果你在數字中留下空白,你可能會有效地做到這一點 - 例如,讓第一個元素爲10,第二個爲20,第三個30等。然後,當你拖動第二個和第一個之後,把它稱爲15(或某物)。

而不是每次增加數字,你只需要做,如果你用盡了空間。最後,您可以通過最小數量來排列對象。

+0

聽起來很痛苦。如果事實上,你可能不得不這樣做更多的處理 – musefan

+0

我不確定OP計劃使用什麼樣的機制,但它似乎是一個圖書館排序問題(http://en.wikipedia.org/wiki/Library_sort)。 – wrhall

0

我會推薦使用JavaScript框架來完成這項工作。

KnockoutJS應符合(從網站)你的需求:

淘汰賽是一個JavaScript庫,可幫助您創建豐富的,反應迅速顯示和編輯用戶界面,用乾淨的底層數據模型。任何時候您都有動態更新的UI部分(例如,根據用戶的動作或外部數據源更改而更改),KO可以幫助您更簡單且可維護地實施它。

0

這裏不包括任何代碼,因爲這是一個概念性問題。
無論如何,您必須爲列表中的每個元素都有一個數字,因爲他們之間必須有一個Total Ordering以表示爲列表。
如果您不希望列表中元素的數量很大,則Bubble Sort應該適合您。

相關問題