int x = a[r], i = l;for (int j = l; j < r; ++j) { if (a[j] <= x) { swap(a[i++], a[j]); }}swap(a[i], a[r]);return i; 先取最后一个元素为pivot,取i为第一个将l到r-1的元素都与pivot比较,比pivot小的就进行交换,i和j交换最后再把i位置的换到最后,i放pivot。返回i。