title: Stackoverflow with Quicksort Java implementation
body: <p>Having some problems implementing quicksort in java. I get a stackoverflow error when I run this program and I'm not exactly sure why. If anyone can point out the error, it would be great.  </p>
  
  <p>si is the starting index. ei is the ending index. </p>
  
  <pre><code>public static void qsort(int[] a, int si, int ei){
  
      //base case
      if(ei&lt;=si || si&gt;=ei){}
  
  
      else{ 
          int pivot = a[si]; 
          int length = ei - si + 1; 
          int i = si+1; int tmp; 
  
          //partition array 
          for(int j = si+1; j&lt;length; j++){
              if(pivot &gt; a[j]){
                  tmp = a[j]; 
                  a[j] = a[i]; 
                  a[i] = tmp; 
  
                  i++; 
              }
          }
  
          //put pivot in right position
          a[si] = a[i-1]; 
          a[i-1] = pivot; 
  
          //call qsort on right and left sides of pivot
          qsort(a, 0, i-2); 
          qsort(a, i, a.length-1); 
      }
  }
  </code></pre>