title: Is there any bad code? ( Quick sorting time complexity on C )
body: <pre><code>void QuickSort(int* x, int first, int last) {
      if (first &gt;= last)
          ;
      else {
          int pivotindex = Partition(x, first, last);
  
          QuickSort(x, first, pivotindex - 1);
          QuickSort(x, pivotindex + 1, last); 
      }
  }
  
  int Partition(int* x, int first, int last) {
      int isbig = first + 1, issmall = last, tmp;
  
      while (1) {
          while (x[isbig++] &lt; x[first] &amp;&amp; isbig != last + 1);     // 
  
          while (x[issmall--] &gt; x[first] &amp;&amp; issmall != first);    // 
  
          if (isbig &lt; issmall) {  //          tmp = x[issmall];
              x[issmall] = x[isbig];
              x[isbig] = tmp;
          }
          else {  //          tmp = x[first];
              x[first] = x[issmall]; 
              x[issmall] = tmp;
  
              break;  // 
          }
      }
  
      return issmall; //
  }
  </code></pre>
  
  <p>I have a problem with this code. I code on myself.
  It's working. But the matter is relatively slower than merge sort algorithm which I made.
  I can't find what the problem is. 
  (I knew as merge sort and quick sort time complexity is equal on non sorted data, but on 10,000 data  sort : <a href="https://i.stack.imgur.com/8MjoT.png" rel="nofollow noreferrer">time comparison ignore korean</a>)</p>
  
  <p>It's 10 times bigger than merge sort. I think it means code is bad.
  But I can't find where it is.
  Is there any bad part of code which makes time complexity BIGGER?</p>