3. 算法效率
创始人
2024-05-28 23:32:41
0

同一个问题的不同算法在性能上的比较,现在的方法主要是算法时间复杂度。算法效率是算法操作(operate)或处理(treat)数据的重复次数最小。

例题选自《编程珠玑》第8章,算法设计技术。

这个问题是一维模式识别(人工智能)中的一个问题。

输入有n个元素的向量,输出连续子向量中的最大和。向量是数学的概念,用数组表示向量,输出连续元素序列和的最大值。问题的关键是元素允许负值,若不允许负值,最大和是数组,规定所有元素是负数时,子向量最大和定义为0。

一维数组d[0..9]={31,-41,59,26,-53,58,97,-93,-23,84}。子向量最大和d[2..6]的和,187。

需要解决的关键问题是明晰子向量d[i,,j]的边界(i,j),怎么将数组分组。因此不同的方法组成不同的算法。主要有三次方或二次方算法,分治法--树形算法,O(n)算法。

3.1 三次方与二次方算法

(1)三次方算法。对任意0<=i<=j<=n,(i,j) 是子向量d[i..j]的边界。因此,数据分组的方法是,根据所有(i,j)明晰的一个子向量d[i,j],计算d[i,j]中元素的和,比较所有子向量的和(称为数据分组),求出最大值。

边界i的范围{0,...,n-1},用一个循环表示, 边界j的范围{i,...,n-1}, 用第二层循环表示. 对两层循环明晰的一个子向量d[i..j] 计算元素的和, 用第三层循环表示. 因此算法有三层循环, 每一层循环最多n的一次方, 算法是三次方算法.

program1 

        maxsofar=0

        for  i=[0,n)

            for

相关内容

热门资讯

一个月内收两封监管函,瑞茂通怎... 12月19日,瑞茂通(600180)公告,于2025年12月19日收到监管工作函,监管机构就公司信息...
律师的作用 我以前自己打官司都是当被告,想办法不让对方讹诈就行,感觉律师没啥用,只是在法庭替你发言而已,孩子谢浩...
120多万卡宴只卖60万!海南... 12月20日,话题#海南封关120多万卡宴只要60万#冲上热搜,引发公众热议。 据媒体报道,12月1...
女子醉驾找人“摆平”被骗7万后... 因醉酒驾驶轻信他人“可摆平”的谎言被骗,女子葛某乙不堪压力自杀身亡。在实施诈骗的苏某被判刑并赔偿后,...
政策护航,智能建造企业“出海”... 长沙晚报掌上长沙12月21日讯(全媒体记者 刘嘉)近日,长沙市智能建造产业链推进办公室印发了《关于推...
男子一家三口被发小抢劫杀害!律... 河南中牟男子一家三口被发小抢劫杀害案12月23日将开庭。 受害者家属梁先生称,2025年7月,他的...
尹锡悦辩称对妻子涉嫌受贿“不知... 当地时间12月21日,韩国“金建希特检组”称已完成对前总统尹锡悦及其妻子金建希的面对面讯问,将在一周...
原创 古... 如果你穿越回古代,又穷又病还没家人,会不会直接凉凉? 不要着急,说不定当时的朝廷会给你分房住、发米粮...
湖北一男子当街拦车砸玻璃,警方... 新京报记者 贺俊怡 编辑 罗伟伟 ▲新京报我们视频出品(ID:wevideo) 12月20日,湖北大...