Home > DeveloperSection > Forums > Search sorted List<Long> for closest and less than

Total Post:20

Points:140
Posted on    October-05-2013 7:53 AM

Ratings:

1266  View(s)
Rate this:

Consider some `long` called `X` and a sorted `List<Long>`. What is the most efficient algorithm to find the index or value in the `List<Long>` that is (i) less than `X`, and (ii) The closest to `X` on the number line (assuming condition (i) has been satsified)?

For example this could be a problem setup:

`long X = 500;`
`List<Long> foo = new Arraylist<Long>();`
`foo.add(450L);`
`foo.add(451L);    `
`foo.add(499L);`
`foo.add(501L);`
`foo.add(550L);`
` `
`Collections.sort(foo); // It's always sorted.`

I would like the algorithm to either return `499` or to return the index associated with `499` (in this case`i=2`).

Hank Greenberg

Total Post:12

Points:84
Posted on    October-05-2013 9:01 AM

If 499 is unique than, use `indexOf(Object)` method.

Don't want to miss updates? Please click the below button!