目前共有2篇帖子。 内容转换:不转换▼
 
点击 回复
204 1
【试题】算法训练 区间k大数查询
一派护法 十九级
1楼 发表于:2016-4-24 18:05
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct
{
    int l;
    int r;
    int K;
} QUERY;

void query(QUERY *q, int *nums)
{
    int i, j, temp;
    int n = q->r - q->l + 1;
    int *sec = (int *)malloc(n * sizeof(int));
    memcpy(sec, nums + q->l - 1, n * sizeof(int));
    for (i = 0; i < n; i++)
    {
        for (j = 0; j < n - i - 1; j++)
        {
            if (sec[j] < sec[j + 1])
            {
                temp = sec[j];
                sec[j] = sec[j + 1];
                sec[j + 1] = temp;
            }
        }
    }
    printf("%d\n", sec[q->K - 1]);
    free(sec);
}

int main()
{
    int i, m, n, *nums;
    QUERY *qs;
    scanf("%d", &n);
    nums = (int *)malloc(n * sizeof(int));
    for (i = 0; i < n; i++)
        scanf("%d", nums + i);
    
    scanf("%d", &m);
    qs = (QUERY *)malloc(m * sizeof(QUERY));
    for (i = 0; i < m; i++)
        scanf("%d%d%d", &qs[i].l, &qs[i].r, &qs[i].K);
        
    for (i = 0; i < m; i++)
        query(qs + i, nums);
    
    free(qs);
    free(nums);
    return 0;
}
一派护法 十九级
2楼 发表于:2016-4-24 18:06
评测结果  正确   得分  100  
CPU使用  390ms  
内存使用  1.703MB 

直接用冒泡排序法,其他什么都别管

回复帖子

内容:
用户名: 您目前是匿名发表
验证码:
(快捷键:Ctrl+Enter)
 

本帖信息

点击数:204 回复数:1
评论数: ?
作者:巨大八爪鱼
最后回复:巨大八爪鱼
最后回复时间:2016-4-24 18:06
 
©2010-2024 Arslanbar Ver2.0
除非另有声明,本站采用知识共享署名-相同方式共享 3.0 Unported许可协议进行许可。