复杂度为(3/2n)的取出最大值和最小值的算法

原创 2012年03月29日 17:13:36
#include<stdio.h>
void main()
{
    int a[100],i,j,n,min,max;
    printf("please input the number:\n");
    scanf("%d",&n);
    printf("please input:\n");
    for(i=1;i<=n;i++)
	{
        scanf("%d",&a[i]);
	}
    if(n%2==1)
	{
        min=max=a[1];
	}
    else if(a[1]<a[2])
	{
        min=a[1];
        max=a[2];
	}
    else
	{
        min=a[2];
        max=a[1];
	}
    for(i=1;i<=n;i++)
	{
        if(a[i]>a[i+1])
		{
             if(min>a[i+1])
			 {
                 min=a[i];
			 }
            if(a[i]>max)
			{
                 max=a[i+1];
			}
		}
        else
		{
             if(min>a[i])
			 {
                 min=a[i];
			 }
             if(a[i+1]>max)
			 {
                 max=a[i+1];
			 }
		}
	}
    printf("max=%d min=%d",max,min);
    printf("\n");
}


一棵排序二叉树,令 f=(最大值+最小值)/2,设计一个算法,找出距离f值最近、大于f值的结点。复杂度如果是O(n2)则不得分。

#include "stdafx.h" #include #include #include using namespace std; struct Nod...

输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个 子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。

输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个 子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。 例如输入的数组为1, -2, 3, 10...

求一个数组中的最大值和最小值,要求将比较次数减小至3N/2

1、取双元素法 每次取两个元素,用较小的和最小值比较,用较大的和最大值比较,那么总共会取N/2次,每取一次会进行三次比较,第一次比较当前两个元素,第二次较小的和当前最小值比较, 第三次较大的和当前...
  • jbctcx
  • jbctcx
  • 2016年08月10日 10:06
  • 451

求浮点数数组A={A1,A2,A3,…,An}中,Aj-Ai(j>i)的最大值。要求时间复杂度越小越好

求浮点数数组A={A1,A2,A3,…,An}中,Aj-Ai(j>i)的最大值。要求时间复杂度越小越好。 1、问题分析: 如果没有时间现在,那么直接使用两层for循环,就能搞定问题。其代码大致如下...
  • csalp
  • csalp
  • 2011年10月13日 15:10
  • 1725

随笔:设计一个栈结构,使得取出栈中最大值时间复杂度为O(1)

题意:设计一个数据结构,符合栈的特点,即“后进先出”,且加多一个要求,使得取出该栈所有元素最大值的时间复杂度可以控制为O(1)。 说个很明显的错误,使用一个辅助变量,保存当前最大值,每次入栈...

随笔:实现一个队列,使得取出最大值的时间复杂度较低

该题是《编程之美》中的题目,最后提供的方法看起来挺好玩的,书里的代码看起来好像实现不了,做了下小调整,整成java的,测试可以实现功能。取出最大值的时间复杂度为O(1)。 这个题有几种解法,如引入最...

《SDUT1730 数字三角形问题》2关于数字三角形,求最小值最大值的N次纠结。

题目是这样的,给一个数字三角形,让你求和最大的路径,还有一个题是求和最小的路径,示例数据都是一样的, 所以没有贴那个题的图。 对于一个刚刚熟悉DP的萌新来说,开始拿到这道题是既有点激动又有点懵逼的。...

算法2_实现一个栈,除了push和pop操作,还要实现min函数以返回栈中的最小值,时间复杂度都为O(1)(keep it up)

实现一个栈,除了push和pop操作,还要实现min函数以返回栈中的最小值。  push,pop和min函数的时间复杂度都为O(1)。 看到这个题目最直接的反应是用一个变量来保存当前栈的最...

常用数据结构2——栈,实现PUSH、POP和取最小值操作算法时间复杂度为o(1)

看到一道笔试题,要求设计一个“栈”数据结构,使得对该栈的PUSH(进栈)、POP(出栈)以及取最小值(MIN)操作的时间复杂度为o(1)。我在网上搜了下,大家貌似也是用双栈来实现的。之所以说是双栈,是...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:复杂度为(3/2n)的取出最大值和最小值的算法
举报原因:
原因补充:

(最多只允许输入30个字)