研究生了,选了计算机算法这门课程,这周布置了一个作业,在OJ上做:**N个数中找到第K大的数值**。大一简单学过C语言基础,目前只能用C语言编程,后续会学C++编程。
分享一份不超时的C语代码~
测试例子:
思路:
思路超简单,看到题目首先想到的就是先对N个数进行排序,再直接输出第K大的值即可。
1、最简单的方法就是冒泡排序(入门基础知识哈哈)
我试了下,成功超时了。因为冒泡排序要做的次数太多了,时间上还是不够的。代码如下:
#include <stdio.h>
int main(void) {
int N,k;
int *a;//定义指针a
int i, j, t;
scanf("%d %d\n", &N, &k);
a=(int *)malloc(sizeof(int)*N);//定义一个baiint类型的指针变量dua,并申请zhin*sizeof(int)个字节(即4*n个字节)的dao存储空间。
for (i = 1; i <= N; i++)
scanf("%d", &a[i]);
for (i