三角形问题的解决复杂度O(n^3)和O(nlogn)的比较
问题描述:
n条棍子组成一个三角形,使得三角形周少最大。
方法一:
暴力解则算法复杂度为O(n^3)
#include<stdio.h>
const int MAX_N=105
int main()
{
    void min(int &a,int &b);
    int n,i,j,k,sum=0;
    int ans[MAX_N];
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&ans[i]);
    }
    for(i=0;i<n;i++)
    {
        for(j=i+1;j<n;j++)
        {
            for(k=j+1;k<n;k++)
            {
                min(ans[i],ans[j]);min(ans[i],ans[k]);min(ans[j],ans[k]);
                if(ans[i]+ans[j]>ans[k])
                {
                    if(ans[i]+ans[j]+ans[k]>sum)
                    sum=ans[i]+ans[j]+ans[k];
                }
            }
        }
    }
    printf("%d\n",sum);
    return 0;
}
void min(int &a,int &b)
{
    int t;
    if(a>b)
    {
        t=a;a=b;b=t;
    }
}方法二:
从大到小将棍子排序,然后依次检查棍子是否满足A<B+C的情况,第一次满足的情况即答案,复杂度O(nlogn)
#include<stdio.h>
const int MAX_N=105;
int main()
{
    int n,i,j,sum=0;
    int ans[MAX_N];
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&ans[i]);
    }
    for(i=0;i<n-1;i++)
    {
        for(j=i+1;j<n;j++)
        {
            if(ans[j]>ans[i])//ans[i]与ans[j]值进行交换
            {
                ans[j]=ans[j]+ans[i];
                ans[i]=ans[j]-ans[i];
                ans[j]=ans[j]-ans[i];
            }
        }
    }
    for(i=0;i<n-2;i++)
    {
        if(ans[i]<ans[i+1]+ans[i+2])
        {
            sum=ans[i]+ans[i+1]+ans[i+2];
            break;
        }
    }
    printf("%d\n",sum);
    return 0;
}三角形问题的解决复杂度O(n^3)和O(nlogn)的比较的更多相关文章
- 统计无向图中三角形的个数,复杂度m*sqrt(m).
		统计无向图中三角形的个数,复杂度m*sqrt(m). #include<stdio.h> #include<vector> #include<set> #inclu ... 
- 数据可视化之DAX篇(十一)Power BI度量值不能作为坐标轴?这个解决思路送给你
		https://zhuanlan.zhihu.com/p/79522456 对于PowerBI使用者而言,经常碰到的一个问题是,想把度量值放到坐标轴上,却发现无法实现.尤其是初学者,更是习惯性的想这么 ... 
- 从0开发3D引擎(九):实现最小的3D程序-“绘制三角形”
		目录 上一篇博文 运行测试截图 需求分析 目标 特性 头脑风暴 确定需求 总体设计 具体实现 新建Engine3D项目 实现上下文 实现_init 实现"获得WebGL上下文" 实 ... 
- CSS和字符串实现三角形
		听说是百度校招的题目,就写了一下 <!doctype html> <html> <head> <meta charset="utf-8"& ... 
- 普林斯顿大学算法课 Algorithm Part I Week 3 排序算法复杂度 Sorting Complexity
		计算复杂度(Computational complexity):用于研究解决特定问题X的算法效率的框架 计算模型(Model of computation):可允许的操作(Allowable oper ... 
- BZOJ2458 Beijing2011最小三角形(分治)
		类似于平面最近点对,考虑分治,即分别计算分割线两侧的最小三角形再考虑跨过线的三角形. 复杂度证明也是类似的,对于某一个点,在另一侧可能与其构成最小三角形的点在一个d*d/2的矩形内(两边之和大于第三边 ... 
- VS2010安装顽疾解决方法:error 25541 failed to open xml file
		一.问题描述 因为之前(2012)对HDFS客户端Thrift接口的库文件封装使用的是VS2010,最近考虑做一个完整的网盘系统的客户端,就把该库文件使用起来,比较悲剧的是之前做过操作系统的还原.我的 ... 
- 沃罗诺伊图(Voronoi Diagram,也称作Dirichlet tessellation,狄利克雷镶嵌)
		沃罗诺伊图(Voronoi Diagram,也称作Dirichlet tessellation,狄利克雷镶嵌)是由俄国数学家格奥尔吉·沃罗诺伊建立的空间分割算法.灵感来源于笛卡尔用凸域分割空间的思想. ... 
- 【概率DP入门】
		http://www.cnblogs.com/kuangbin/archive/2012/10/02/2710606.html 有关概率和期望问题的研究 摘要 在各类信息学竞赛中(尤其是ACM竞赛中) ... 
随机推荐
- Servlet学习之web服务器Tomcat 详解
			Web服务器是什么 Web服务器是指驻留于因特网上某种类型计算机的程序.当Web浏览器(客户端)连到服务器上并请求文件时,服务器将处理该请求并将文件发送到该浏览器上,附带的信息会告诉浏览器如何查看该文 ... 
- 面向对象的PHP
			类的实例(包括继承) <?php // 父类 class Animal { public $name; public $age; // 构造函数,使用new操作符生成实例的时候自动调用 func ... 
- Android开发自学笔记(Android Studio1.3.1)—1.环境搭建
			一.引言 .Google推出的 毫无疑问,这个是它的最大优势,Android Stuido是Google推出,专门为Android"量身订做"的,是Google大力支持的一款基于I ... 
- 手机信号强度单位dB、dBm和asu
			dB.dBm都是功率增益的单位,不同之处如下: dB是一个表征相对值的值,纯粹的比值,只表示两个量的相对大小关系,没有单位,当考虑甲的功率相比于乙功率大或小多少个dB时,按下面的计算公式:10log( ... 
- linux基础-第十五单元 软件包的管理
			使用RPM安装及移除软件 什么是RPM rpm的文件名 rpm软件安装与移除工作中经常使用的选项 查看RPM软件包中的信息 查询已安装的软件包信息 RPM包的属性依赖性问题 什么是RPM包的属性依赖性 ... 
- 《锋利的jQuery》读书笔记
			jQuery理念:write less, do more! 第 一 章一:jQuery简介 a:轻量级 b:强大选择器 c:DOM封装 d:ajax封装 e:不污染顶级变量 只建立一个jQuery对象 ... 
- Entity Framework Code First (四)Fluent API - 配置属性/类型
			上篇博文说过当我们定义的类不能遵循约定(Conventions)的时候,Code First 提供了两种方式来配置你的类:DataAnnotations 和 Fluent API, 本文将关注 Flu ... 
- Maven-pom.xml详解
			(看的比较累,可以直接看最后面有针对整个pom.xml的注解) pom的作用 pom作为项目对象模型.通过xml表示maven项目,使用pom.xml来实现.主要描述了项目:包括配置文件:开发者需要遵 ... 
- jquery- pagination使用
			$("#gupiaopage").page({ showInfo: false, showJump: false, showPageSizes: true, firstBtnTex ... 
- NSTimer内存泄漏导致控制器不调用dealloc
			创建定时器会在一定的间隔后执行某些操作,一般大家会这样创建定时器,这样创建的定时,self对定时器有个引用,定时器对self也有个引用,造成了循环引用,最终造成了内存泄漏,如果定时器在做下载的操作就会 ... 
