, <code>less(self[</code><em>i</em><code>],
  self[</code><em>j</em><code>]) &amp;&amp; !less(self[</code><em>j</em><code>], self[</code><em>p</em><code>])</code>.
  Only returns <code>range.endIndex</code> when <code>self</code> is empty.</p>

<p><strong>Requires:</strong> The less-than operator (<code>func &lt;</code>) defined in
  the <code>Comparable</code> conformance is a
  <a href="http://en.wikipedia.org/wiki/Strict_weak_order#Strict_weak_orderings">strict weak ordering</a>
  over the elements in <c