快速排序

[cpp] view plain copy

1.//快速排序
2.void quick_sort(int s[], int l, int r)
3.{

  1. if (l < r)
  2. {
  3. //Swap(s[l], s[(l + r) / 2]); //將中間的這個數和第一個數交換 參見注1
  4. int i = l, j = r, x = s[l];
  5. while (i < j)
  6. {
  7. while(i < j && s[j] >= x) // 從右向左找第一個小於x的數
  8. j--;
  9. if(i < j)
  10. s[i++] = s[j];
  11. while(i < j && s[i] < x) // 從左向右找第一個大於等於x的數
  12. i++;
  13. if(i < j)
  14. s[j--] = s[i];
  15. }
  16. s[i] = x;
  17. quick_sort(s, l, i - 1); // 遞歸調用
  18. quick_sort(s, i + 1, r);
  19. }
    24.}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章