问下怎么用c语言进行快速排序并把每一次数据交换后的结果输出?

问下怎么用c语言进行快速排序并把每一次数据交换后的结果输出?

void quick_sort(int arr[], int left, int right) {
  int i = left, j = right;
  int tmp;
  int pivot = arr[(left + right) / 2];

  /* partition */
  while (i <= j) {
    while (arr[i] < pivot)
      i++;
    while (arr[j] > pivot)
      j--;
    if (i <= j) {
      tmp = arr[i];
      arr[i] = arr[j];
      arr[j] = tmp;
      i++;
      j--;
      
      // 输出排序后的数组
      for (int k = 0; k < right + 1; k++) {
        printf("%d ", arr[k]);
      }
      printf("\n");
    }
  }

  /* recursion */
  if (left < j)
    quick_sort(arr, left, j);
  if (i < right)
    quick_sort(arr, i, right);
}