設R1,...,RN是n在平面軸對齊矩形的量,角部是在n×n個網格點。因此,對於每個矩形Ri,四個角是其中兩個座標都是{1,...,n}中的整數的點。排序矩形(N)
現在我想這些矩形R1,......通過有增加面積在O(n)的時間Rn的排序。
我有一個算法將它們排序在O(n * log n)中。但是如何在O(n)中完成呢?
使用O(N * log n)的,我們可以這樣做:
Calculate all the areas, and then sort using any standard sorting algorithm like Quick sort
我猜有些每處理將是必需的,這樣我們就可以在O(n)的排序,因爲我們給出了一些可以提供幫助的前提條件。我只想算法,不需要代碼。
由於所得區域是整數,您可以實現[基數排序](http://stackoverflow.com/q/14717560/4856258)算法。 –
@TagirValeev基數排序如何幫助這裏? – ms8
@python_slayer基數排序是一個[*非比較排序*](https://en.wikipedia.org/?title=Radix_sort),當k << n時,運行在「O(n)」中細節)。 O(n lg n)下限用於*比較*排序。 – user2864740