有没有减少这个程序运行时间的方法(c语言)

#includeint main(){ int c=0,i,n,j,t,k; scanf("%d %d\n",&n,&k); int a[n],b[c]; for(i=0;i

这代码贴的也太乱了吧
把题目说一下吧,看看要实现什麽功能
定义了一个c变量,但一直是0。那int a[n],b[c],这b数组0个元素?

用链表可以稍微优化一些,这种简单功能,优化的空间不大。
代码应该是求不重复数中第K大的数,用链表如下:

#include <stdio.h>
#include <stdlib.h>

typedef struct _node
{
    int data;
    struct _node* next;
}Node,*LinkList;


int main()
{
    LinkList head, p, t;
    int n, k, i, tmp;
    head = (LinkList)malloc(sizeof(Node));
    head->next = NULL;

    scanf("%d %d\n",&n,&k); 
    
    for(i=0;i<n;i++) 
    {
        t = (LinkList)malloc(sizeof(Node));
        t->next = NULL;
        scanf("%d",&(t->data));
        p = head;
        while (p->next)
        {
            if (p->next->data < t->data)
                break;
            else if (p->next->data == t->data)
            {
                p = NULL;
                break;
            }
            else
                p = p->next;
        }
        if (p)
        {
            t->next = p->next;
            p->next = t;
        }
        else
            free(t);
    } 
    
    i = 1;
    p = head->next;
    while (p && i < k)
    {
        i++;
        p = p->next;
    }
    if (p)
        printf("%d", p->data);
    else
        printf("NO RESULT");


    
    return 0;
}