void QuickSort(LineList r[], int first, int end) { /*快速排序算法函数*/ int i, j; LineList temp; i = first; j = end; temp = r[i]; /*初始化*/ while (i < j) { while (i < j && temp.Key <= r[j].Key) j--; r[i] = r[j]; while (i < j && r[i].Key <= temp.Key) i++; r[j] = r[i]; } r[i] = temp; // 添加输出语句,输出每次排序后的结果 printf("第 %d 次排序结果:", i-1); for(int k=first; k<=end; k++) { printf("%d ", r[k].Key); } printf("\n"); if (first < i - 1) QuickSort(r, first, i - 1); /*对左侧分区域进行快速排序*/ if (i + 1 < end) QuickSort(r, i + 1, end); /*对右侧分区域进行快速排序*/ } void SelectSort(LineList r[], int n) { /*直接选择排序算法*/ int i, j, k; /*k存放每趟比较的最大值的下标值*/ LineList x; for (i = 1; i <= n; i++) { k = i; for (j = i + 1; j <= n; ++j) if (r[j].Key < r[k].Key) /*选择本次比较的最大值*/ k = j; if (k != i) /*若k不等于当前位置i,则交换i和k位置的记录*/ { x = r[i]; r[i] = r[k]; r[k] = x; } } }这两个怎么样改人他显示出排序过程
时间: 2024-03-12 13:47:17 浏览: 37
QuickSort快速排序的实现
您可以在每次排序后添加输出语句,输出排序结果。具体方法如下:在 QuickSort 和 SelectSort 函数中,在每次排序后添加以下代码:
```
// 添加输出语句,输出每次排序后的结果
printf("第 %d 次排序结果:", i-1);
for(int k=first; k<=end; k++)
{
printf("%d ", r[k].Key);
}
printf("\n");
```
这样就可以在每次排序后输出排序结果了。
阅读全文