模板

            //左右指针移动
            while (left <= right)
            {
                while (A[left] < pivot)
                {
                    left++;
                }
                while (A[right] > pivot)
                {
                    right--;
                }

                if (left <= right)
                {
                    int temp = A[left];
                    A[left] = A[right];
                    A[right] = temp;

                    left++;
                    right--;
                }
            }

            //合并两个数组

            while (left <= mid && right <= end) {
            if (A[left] < A[right]) {
            temp[index++] = A[left++];
            } else {
            temp[index++] = A[right++];
            }
            }
            while (left <= mid) {
            temp[index++] = A[left++];
            }
            while (right <= end) {
            temp[index++] = A[right++];
            }7

Last updated

Was this helpful?