[ 
https://issues.apache.org/jira/browse/LUCENE-4946?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13648227#comment-13648227
 ] 

Dawid Weiss commented on LUCENE-4946:
-------------------------------------

bq. I think the original implementation used inclusive end because most 
implementations on the web were based on this. For me it always looked wrong, 
but I did not want to change it.

I admit I am on the 'inclusive' side of things. To me sort(0..5) means sort 
elements between indexes 0 and 5, simple. There is also a side-effect of making 
it exclusive -- you can't sort the full array because an exclusive index on any 
end would overflow into negative values. I guess it's really a matter of taste 
in most cases. Perhaps the best way to change it would be to give (startIndex, 
elementsCount) which still reads (0, array.length) in most cases and does not 
have the problems mentioned above...
                
> Refactor SorterTemplate
> -----------------------
>
>                 Key: LUCENE-4946
>                 URL: https://issues.apache.org/jira/browse/LUCENE-4946
>             Project: Lucene - Core
>          Issue Type: Improvement
>            Reporter: Adrien Grand
>            Assignee: Adrien Grand
>            Priority: Trivial
>         Attachments: LUCENE-4946.patch, LUCENE-4946.patch
>
>
> When working on TimSort (LUCENE-4839), I was a little frustrated of not being 
> able to add galloping support because it would have required to add new 
> primitive operations in addition to compare and swap.
> I started working on a prototype that uses inheritance to allow some sorting 
> algorithms to rely on additional primitive operations. You can have a look at 
> https://github.com/jpountz/sorts/tree/master/src/java/net/jpountz/sorts (but 
> beware it is a prototype and still misses proper documentation and good 
> tests).
> I think it would offer several advantages:
>  - no more need to implement setPivot and comparePivot when using in-place 
> merge sort or insertion sort,
>  - the ability to use faster stable sorting algorithms at the cost of some 
> memory overhead (our in-place merge sort is very slow),
>  - the ability to implement properly algorithms that are useful on specific 
> datasets but require different primitive operations (such as TimSort for 
> partially-sorted data).
> If you are interested in comparing these implementations with Arrays.sort, 
> there is a Benchmark class in src/examples.
> What do you think?

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to