【发布时间】:2013-01-26 07:23:39
【问题描述】:
假设我有一个数字列表:
89 12 18 4 6
我想实现一个插入排序并将排序的每一步都打印到屏幕上:
Sort 1. 12 89 18 4 6
Sort 2. 4 12 89 18 6
Sort 3. 4 6 12 89 18
Sort 4. 4 6 12 18 89
这是我到目前为止的代码,我对在循环中插入 printf 的位置感到困惑。
void insertion_sort(FILE *fp, int ar[15])
{
int i, j, temp;
for (i = 0; i < 15; i++)
printf("%d\n", ar[i]);
for(i = 0; i < 15; i++) {
temp = ar[i];
for(j = i - 1; j >= 0 && ar[j] > temp; j--)
ar[j + 1] = ar[j];
ar[j + 1] = temp;
}
【问题讨论】:
-
在外部 for 循环中插入 printf(),因为您想在每一步打印您正在排序的数组。
-
你的排序是否有效?我猜你需要在内部 for 循环中包装第二个 for 循环代码
标签: c arrays for-loop while-loop insertion-sort