我正在爲銷售iPhone配件的公司創建Python程序。該程序將具有一個函數,該函數接受列表的列表作爲參數,其中每個列表元素包含描述產品的兩個值 - 價格和估計質量(整數值)。我想找到一個項目的價格低於另一個的情況,但其質量高於另一個的情況。因此,例如,我將通過這個列表,我的功能:用於比較二維數組中元素的算法
some_inventory = [[11.95, 10], [7.95, 12], [6.50, 3],...]
在這個列表中的元素[7.95,12]將有更低的價格和更高的質量比[11.95 10]。如果這種情況存在,我想返回一個布爾值,如good_deal = True。
some_inventory中有大約10萬個這樣的列表元素。我可以使用暴力方法將每個價格與所有其他價格進行比較,然後檢查它們的質量,但這非常緩慢。我試着按價格先排序,對於價格相同的商品,我會消除質量較差的商品,並將最高品質的商品添加到新列表中(例如,如果有[4.50,2],[4.50,5] ,[4.50,8]我只添加了[4.50,8]到一個新列表中)。但這似乎仍然過於耗時。
是否有更高效的算法來進行這些比較?它不一定要用python,僞代碼或者C/C++都可以。
你能更具體地說明你想要這個算法做什麼嗎?它的行爲如何?它會返回什麼? – joshreesjones 2014-10-19 01:04:43
@ mathguy54如果存在一種情況,產品比其他產品便宜但質量較高,我只希望程序返回布爾值,如good_deal = True。所以good_deal在開始時會被設置爲False的默認值。 – MNRC 2014-10-19 01:06:48
按質量先排序然後再打破價格最低的關係 – 2014-10-19 01:08:01