算法复杂度 hdu1425

1.算法复杂度分为两个方面:
时间复杂度:程序执行的时间
空间复杂度:程序占用的内存空间

2.TLE(Time Limit Exceeded的缩写)是时间超限的意思

3.clock()函数可以记录运行时间

4.hdu1425三种方法比较
1.冒泡排序
需要用到双层for循环,要注意for循环的条件
此题时间复杂度为O(n²/2),当n=100万时,会 时间超限
2.快速排序
快速排序是基于分治法的优秀排序算法,
此题用STL的sort()函数直接解决,它是改良版的快速排序,称为“内省式排序”。
3.哈希算法
哈希算法是一种以空间换取时间的算法,
此题可在输入时 a[50000+t]=1,在输出时逐个检查a[i]。

总结:sort()函数头文件是 #include
clock_t函数头文件是 #include<time.h>
数据较大的时候输入用scanf更节省时间。

#include<iostream>
#include<time.h>
using namespace std;
int main()
{int i,k,n=1e8;clock_t start,end;start=clock();//开始for(i=0;i<n;i++){k++;}end=clock();//结束cout<<(double)(end-start)/CLOCKS_PER_SEC<<endl;return 0;
}
#include<iostream>//冒泡排序,此方法会TLE
#include<stdio.h>
using namespace std;
int a[1000001];
int main()
{int n,m,t;while(~scanf("%d %d",&n,&m)){for(int i=0; i<n; i++){cin>>a[i];}for(int i=1; i<n; i++)//千万不能搞错,会出事的{for(int j=0; j<n-i; j++)//从0开始{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}for(int i=n-1; i>n-m; i--){printf("%d ",a[i]);}printf("%d\n",a[n-m]);}return 0;
}
#include<iostream>
#include<stdio.h>
#include<algorithm>
using namespace std;
int a[1000001];
int main()
{int n,m;while(~scanf("%d %d",&n,&m)){for(int i=0; i<n; i++){scanf("%d",&a[i]);}sort(a,a+n);for(int i=n-1; i>n-m; i--){printf("%d ",a[i]);}printf("%d\n",a[n-m]);}return 0;
}
#include<iostream>
#include<bits/stdc++.h>
#include<algorithm>
#include<string.h>
#define MAX 1000001
using namespace std;
int a[MAX];
int main()
{memset(a,0,sizeof(a));int n,m,t;while(~scanf("%d%d",&n,&m))//此题数据多,如果用cin会很慢,会TLE。{for(int i=0; i<n; i++){scanf("%d",&t);a[500000+t]=1;}for(int i=MAX-1; m>0; i--){if(a[i]==1){if(m>1)cout<<i-500000<<' ';elsecout<<i-500000<<endl;//本题是多测试样例,需要考虑换行,wa了好几次m--;}}}return 0;
}

算法复杂度 hdu1425相关推荐

  1. 20162311 算法复杂度-3

    算法复杂度-3 题目要求 实现情况 求一个整数二维数组Arr[N][N]的所有元素之和 我自己写了一个getSum的方法 算法的时间复杂度为O(n^2) 对于输入的任意 3 个整数, 将它们按从小到大 ...

  2. PHP复杂度,php 算法复杂度 时间复杂度 空间复杂度

    算法复杂度分为时间复杂度和空间复杂度. 其作用: 时间复杂度是指执行算法所需要的计算工作量: 而空间复杂度是指执行这个算法所需要的内存空间. (算法的复杂性体现在运行该算法时的计算机所需资源的多少上, ...

  3. .NET平台BigO算法复杂度备忘

    之前一篇文章提到BIG O算法复杂度的备忘录, 今天这个是.NET 平台下集合类相关的Big O 算法复杂度 今天先到这儿,希望对您有参考作用, 您可能感兴趣的文章: 数据结构与算法 Big O 备忘 ...

  4. O(n)级选排名第k位数(附上算法复杂度分析)

    算法简述 如果想要拿到第k位,一般说复杂度都比较高.例如,用快排等方式,要用了O(nlogn)水平的时间复杂度.就算是用快排改进,每次在快排的基础上,只排剩下的一部分,在平均水平上,也会变成了O(nl ...

  5. “算法复杂度”——其实并没有那么复杂

    算法是用于解决特定问题的一系列的执行步骤.使用不同算法,解决同一个问题,效率可能相差非常大.为了对算法的好坏进行评价,我们引入 "算法复杂度" 的概念. 1.引例:斐波那契数列(F ...

  6. 二分检索用途及复杂性_二分查找和三分查找哪个快?算法复杂度与常数无关?复杂度分析的常见误区...

    还记得两三年前,我初看一本算法书,看到二分查找算法的复杂度时,我发现了了不得的东西:二分查找每次查询范围减少一半,需要查询的次数是 ,它的复杂度是 . 我把它改成三分查找,每次查询两个数字与我的目标数 ...

  7. 算法复杂度分析(下)

    前一篇文章算法复杂度分析(上)讲述了复杂度的大 O 表示法和几个分析原则,这篇文章我们来讲讲另外几种复杂度,最好情况时间复杂度(best case time complexity).最坏情况时间复杂度 ...

  8. 排序代码(python,c++) 及 基本算法复杂度

    0.导语 本节为手撕代码系列之第一弹,主要来手撕排序算法,主要包括以下几大排序算法: 直接插入排序 冒泡排序 选择排序 快速排序 希尔排序 堆排序 归并排序 1.直接插入排序 [算法思想] 每一步将一 ...

  9. 老王带你理解算法复杂度O(1),O(N),O(N^2)

    上图对应的是算法复杂度的图片,X轴对应的是n(问题规模),Y轴对应的是执行的运行时间. 我们先从简单的复杂度解读O(1) 从上面的图片我们可以看到O(1)的复杂度是恒定的,一点波澜都没有,什么是O(1 ...

最新文章

  1. 原创 | 常见损失函数和评价指标总结(附代码)
  2. npm包管理机制引质疑:又一安装程序中发现恶意代码,开发者账户频遭劫持
  3. 洛谷 P2574 XOR的艺术
  4. 5g空分复用技术_5G十大关键技术之三的空分复用
  5. 系统超时或者服务器会话丢失,第 17 章 配置 Web 服务器(Undertow)
  6. 自定义Valid注解,校验List集合
  7. Spark源码分析之Master注册机制原理
  8. nginx ngx_http_autoindex_module
  9. android语音识别 android.speech 包分析
  10. ZIGBEE 工程内区分终端与协调器
  11. 三国演义亲和度python_python爬取三国演义文本
  12. css3 shapes是什么意思,New Shapes
  13. python重命名列名_Pandas对列进行重命名
  14. 网络能力认证CCSC-管理1级 技术1级别
  15. win10打开程序不弹出窗口,只在任务栏显示
  16. 英国4g网络频段_英国需要网络会议
  17. venn diagram_Venn Diagram Python软件包:Vennfig
  18. 罗昭锋 文献管理与信息分析一
  19. 物体空间姿态估计// Robust Planar Pose (RPP)algorithm
  20. 公众号如何关注回复多图文?

热门文章

  1. Nginx 性能优化 Gzip 压缩配置
  2. 饭局 男人必学 女人必知
  3. 【学习周报】深度学习笔记第六周
  4. 【BDWP不限速小妙招】真测有效
  5. 横向越权和纵向越权(水平越权、垂直越权)
  6. 洛谷 Cantor 表
  7. 时间复杂度和空间复杂度复习 (一)
  8. NBA GLOSSARY
  9. 深度学习的研究方向和发展趋势
  10. 270w+数据量级 | CnOpenData地方政府留言文本数据简介