"Terminated due to time out" C 中的错误,插入排序?
"Terminated due to time out" error in C, Insertion sort?
我正在尝试使用下面的方法进行插入排序,但出现 "terminated due to timeout" 错误。可能是什么原因呢?我已经为Print单独描述了prin函数。
示例输入
6
1 4 3 5 6 2
示例输出
1 4 3 5 6 2
1 3 4 5 6 2
1 3 4 5 6 2
1 3 4 5 6 2
1 2 3 4 5 6
计划
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
#include <assert.h>
void prin(int ar_size,int* ar);
void insertionSort(int ar_size,int* ar) {
int i=1;
for (i;i<=ar_size;i++)
{
prin(ar_size, ar);
int j=0;
while(j<i)
{
if(*(ar+i) < *(ar+j))
{
int temp;
temp= *(ar+j);
*(ar+i)= *(ar+j);
*(ar+j)= temp;
j++;
}
}
}
}
void prin(int ar_size,int* ar)
{
int p;
printf("\n");
for(p=0; p < ar_size;p++)
{
printf("%d ",*(ar+p));
}
}
int main(void) {
int ar_size;
scanf("%d", &ar_size);
//int* _ar=(int*) calloc(_ar_size,sizeof(int)); //Tried this and below decleration but i get the same error
int _ar[ar_size], _ar_i;
for(_ar_i = 0; _ar_i < ar_size; _ar_i++) {
scanf("%d", &_ar[_ar_i]);
}
insertionSort(ar_size,_ar);
return 0;
}
您在 insertionSort
中的 j
仅在该条件内递增。程序很可能在 while (j<i)
循环中永远循环。
我正在尝试使用下面的方法进行插入排序,但出现 "terminated due to timeout" 错误。可能是什么原因呢?我已经为Print单独描述了prin函数。
示例输入
6
1 4 3 5 6 2
示例输出
1 4 3 5 6 2
1 3 4 5 6 2
1 3 4 5 6 2
1 3 4 5 6 2
1 2 3 4 5 6
计划
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
#include <assert.h>
void prin(int ar_size,int* ar);
void insertionSort(int ar_size,int* ar) {
int i=1;
for (i;i<=ar_size;i++)
{
prin(ar_size, ar);
int j=0;
while(j<i)
{
if(*(ar+i) < *(ar+j))
{
int temp;
temp= *(ar+j);
*(ar+i)= *(ar+j);
*(ar+j)= temp;
j++;
}
}
}
}
void prin(int ar_size,int* ar)
{
int p;
printf("\n");
for(p=0; p < ar_size;p++)
{
printf("%d ",*(ar+p));
}
}
int main(void) {
int ar_size;
scanf("%d", &ar_size);
//int* _ar=(int*) calloc(_ar_size,sizeof(int)); //Tried this and below decleration but i get the same error
int _ar[ar_size], _ar_i;
for(_ar_i = 0; _ar_i < ar_size; _ar_i++) {
scanf("%d", &_ar[_ar_i]);
}
insertionSort(ar_size,_ar);
return 0;
}
您在 insertionSort
中的 j
仅在该条件内递增。程序很可能在 while (j<i)
循环中永远循环。