C++语言程序设计

类似地，我们再将left_arrow由移，直至遇到一个元素值大于或等于pivot为止。因为14＞8，所以left_arrow此时不需要移动。现在，将left_arrow和right_arrow所在位置的数组元素交换：

| 图7-18

我们继续移动right_arrow：

| 图7-19

向右移动left_arrow：

| 图7-20

交换它们的值：

| 图7-21

right_arrow向左移动、left_arrow向右移动的过程一直进行，直至条件left_arrow > right_arrow满足为止。上一步中，这个条件仍然不满足，继续向左移动right_arrow：

| 图7-22

再向右移动left_arrow：

| 图7-23

交换它们的值（这次涉及到pivot）：

| 图7-24

交换pivot并没有什么关系，因为它也是一个元素值，而不是下标。right_arrow继续左移，left_arrow继续右移：

| 图7-25

此时，已经满足了移动过程的终止条件left_arrow > right_arrow，左右两侧的子数组L和R便生成了。