导航:首页 > 股市分析 > 1最坏情况分析

1最坏情况分析

发布时间:2021-07-11 13:23:52

❶ 设计求解下列问题的的类C语言算法,并分析其最坏情况时间复杂性及其量级。 (数据结构导论的题目) 大家快来

(1)
void findEle(int[] a, int n, int key) {
for (int i=0; i<n; i ++) {
if (key == a[i]) {
printf( "%d\n", i+1);
return ;
}
}
printf("0\n");
return;
}
算法的复杂度为: O(n),最坏为n。
(2)
void findMaxMin(int a[], int n, int &max, int &maxNext) {
if (n ==0 || a == 0) return; //输入的数组为空
if (n==1) { max = maxNext = a[0]; return;} //数组的长度为1, max 和maxNext 都设为a[0]

if (a[1] > a[0] ) { max = a[1]; maxNext=a[0];}
else { max = a[0]; maxNext = a[1];}

for(int i=2; i<n; i ++) {
if (a[i] > max) {maxNext= max; max = a[i]; } //-----a
else if (a[i] > maxNext) { maxNext = a[i];}
}
return;
}

算法的复杂度: O(n). 最坏情况: 2n (当输入的数组是一个排好序的升序的数组时,循环的每一步都要执行语句a进行数据交换。

❷ 1.为什么要分析最坏情况下的算法时间复杂性

哈哈,这个问题问得好,我记得我也问过老师这个问题,结果老师的答案是程序就是要看最差的时间,而且最差时间比较容易计算出来。比如说遍历一个二叉树,计算平均时间相当复杂,是2(1+1/n)ln n ,约等于1.38log n。需要一个求和,公式相当复杂(详见《数据结构:思想与实现》高教版204页)

所以,只用最坏了。好计算。

❸ 为何说不要回避最坏的情况

卡瑞尔是一个很聪明的工程师,他开创了空气调节器制造业,现在是位于纽约州瑞西的著名卡瑞尔公司的负责人。我所知道的解决忧虑困难的最好办法,是我和卡瑞尔先生在纽约的工程师俱乐部吃中饭的时候亲自从他那里学到的。

“年轻的时候,”卡瑞尔先生说,“我在纽约州水牛城的水牛钢铁公司做事。我必须到密苏里州水晶城的匹兹堡玻璃公司——一座花费好几百万美金建造的工厂,去安装二架瓦斯清洁机,目的是清除瓦斯里的杂质,使瓦斯燃烧时不至于有损引擎。这种清洁瓦斯的方法是新的方法,以前只试过一次——而且当时的情况很不相同。我到密苏里州水晶城工作的时候,很多事先没有想到的困难都发生了。经过一番调整之后,机器可以使用了,可是成绩并不能好到我们所保证的程度。

“我对自己的失败非常吃惊,觉得好像是有人在我头上重重地打了一拳。我的胃和整个肚子都开始扭痛起来。有好一阵子,我忧虑得简直没有办法睡觉。

“最后,我的常识告诉我忧虑并不能够解决问题,于是我想出了一个不需要忧虑就可以解决问题的办法,结果非常有效。我这个排除忧虑的办法已经使用了30多年。这个办法非常简单,任何人都可以使用。其中共有三个步骤:

“第一步,我毫不害怕而诚恳地分析整个情况,然后找出万一失败可能发生的最坏的结果。没有人会把我关起来,或者把我枪毙,这一点说得很准。不错,很可能我会丢掉差事,也可能我的老板会把整个机器拆掉,使投进去的2万美元泡汤。

“第二步,找出可能发生的最坏的情况之后,我就让自己在必要的时候能够接受它。我对自己说,这次失败,在我的纪录上会是一个很大的污点,可能我会因此而丢差事。但即使真是如此,我还是可以另外找到一份差事。至于我的那些老板,他们也知道我们现在是在试验一种清除瓦斯新法,如果这种实验要花他们2万美元,他们还付得起。他们可以把这笔账算在研究费用上,因为这只是一种实验。

“发现可能发生的最坏情况,并让自己能够接受之后,有一件非常重要的事情发生了。我马上轻松下来,感受到几天以来所没经验过的一份平静。

“第三步,从这以后,我就平静地把我的时间和精力,拿来试着改善我在心理上已经接受的那种最坏情况。

“我努力找出一些办法,让我减少我们目前面临的2万美元损失。我做了几次实验,最后发现,如果我们再多花5000美元,加装一些设备,我们的问题就可以解决。我们照这个办法去做之后,公司不但没有损失2万美元,反而赚了1 5万美元。

“如果当时我一直担心下去的话,恐怕永远不可能做到这一点。因为忧虑的最大坏处,就是会毁了我集中精神的能力。在我们忧虑的时候,思想会到处乱转,而丧失所有作决定的能力。然而,当我们强迫自己面对最坏的情况,而在精神上接受它之后,就能够衡量所有可能的情形,使我们处在一个可以集中精力解决问题的地位。

“我刚才所说的这件事,发生在很多很多年以前,因为这种做法非常好,我就一直使用着。结果呢,我的生活里几乎完全不再有烦恼了。”

为什么威利·卡瑞尔的万能公式这么有价值,这么实用呢?从心理学上来讲,它能够把我们从那个巨大的灰色云层里拉下来,让我们不再因为忧虑而盲目地摸索,它可以使我们的双脚稳稳地站在地面上,而我们也都知道自己的确站在地面上。如果我们脚下没有结实的土地,又怎么能希望把事情想通呢?

应用心理学之父威廉·詹姆斯教授,已经去世38年了,可是如果他今天还活着,听到这个面对最坏情况的公式的话,也一定会大表赞同。我怎么知道的呢?因为他曾经告诉他的学生说:“你要愿意承担这种情况,因为能接受既成的事实,就是克服随之而来的任何不幸的第一个步骤。”

林语堂在他的《生活的艺术》里也谈到同样的概念。“心理的平静,”这位中国哲学家说,“……能接受最坏的情况,在心理上,就能让你发挥出新的能力。”

这就对了,一点也不错。在心理上就能让你发挥出新的能力。当我们接受了最坏的情况之后,我们就不会再损失什么,而这也就是说,一切都可以得回来。“在面对最坏的情况之后,”威利·卡瑞尔告诉我们说,“我马上就轻松下来,感到一种好几天来没有经历过的平静。然后,我就能思想了。”

很有道理,对不对?可是还有成千上万的人,为愤怒而毁了他们的生活。因为他们拒绝接受最坏的情况,不肯由此以求改进,不愿意在灾难中尽可能地救出点东西来。他们不但不重新构筑他们的财富,却参与了“和经验所作的一次冷酷而激烈的斗争”——终于变成我们称之为忧郁症的那种颓丧的情绪的牺牲者。

这套消除忧虑的万灵公式,曾经使一个带着棺材航海旅行的垂死病人胖了90磅。这是艾尔·汉里的故事。那是1948年11月17日,他在波士顿史帝拉大饭店亲口告诉我的故事:

“1929年,”他说,“因为我常常发愁,得了胃溃疡。有一天晚上,我的胃出血了,被送到芝加哥西比大学的医学院附设医院里。我的体重从175磅降到90磅。我的病严重到使医生警告我,连头都不许抬。三个医生中,有一个是非常有名的胃溃疡专家。他们说我的病是‘已经无药可救了’。我只能吃苏打粉,每小时吃一大匙半流质的东西,每天早上和每天晚上都要有护士拿一条橡皮管插进我的胃里,把里面的东西洗出来。

“这种情形过了好几个月……最后,我对自己说:‘你睡吧,汉里,如果你除了等死之外没有什么别的指望了,不如好好利用你剩下的这一点时间。你一直想在你死以前环游世界,所以如果你还想这样做的话,只有现在就去做了。’

“当我对那几位医生说,我要环游世界,我自己会一天洗两次胃的时候,他们都大吃一惊。不可能的,他们从来都没有听说这种事。他们警告我说’,如果我开始环游世界,我就只有葬在海里了。‘不,我不会的。’我回答说,‘我已经答应过我的亲友,我要葬在尼布雷斯卡州我们老家的墓园里,所以我打算把我的棺材随身带着。’

“我去买了一具棺材,把它运上船,然后和轮船公司安排好,万一我去世的话,就把我的尸体放在冷冻舱里,一直到回老家的时候。我开始踏上旅程,心里只想着奥玛开俨的一首诗。

啊,在我们零落为泥之前,

岂能辜负,不拼作一生欢,

物化为泥,永寂黄泉下,

没酒、没弦、没歌伎,而且没明天。

“我从洛杉矶上了亚当斯总统号的船向东方航行的时候,就觉得好多了,渐渐地不再吃药,也不再洗胃。不久之后,任何食物都能吃了——甚至包括许多奇奇怪怪的当地食品和调味品。这些别人都说我吃了一定会送命的。几个礼拜过去之后,我甚至可以抽长长的黑雪茄,喝几杯老酒。多年来我从来没有这样享受过。我们在印度洋上碰到季风,在太平洋上遇到台风。这种事情要是害怕,也会让我躺进棺材里的,可是我却从这次冒险中得到很大的乐趣。

“我在船上和他们玩游戏、唱歌、交新朋友,晚上聊到半夜。到了中国和印度之后,我发现我回去之后要料理的私事,跟在东方所见到的贫穷与饥饿比起来,简直像是天堂跟地狱之比。我中止了所有无聊的担忧,觉得非常的舒服。回到美国之后,我的体重增加了90磅,几乎完全忘记了我曾患过胃溃疡。我这一生中从没有觉得这么舒服。我回去后一天也没再病过。”

艾尔·汉里告诉我,他发现他是在下意识里应用了威利·卡瑞尔征服忧虑的办法。

让我们看看其他人怎样利用威利·卡瑞尔的万灵公式,来解决他们自己的问题。下面就是一个例子。这是以前我的一个学生——目前他是一名纽约油商——所做过的事情:

“有人勒索我,”他说,“我不相信会有这种事情——我不相信这种事情会发生在电影以外的现实生活里——可是我真的是被勒索了。事情是这样的:我主管的那个石油公司,有好几辆运油的卡车和好些司机。在那段时期,物价管理委员会的条例是很严格的,我们所能送给每一个顾客的油量也都有限制。我起先不知道事情的真相,好像有一些运货员减少我们固定顾客的油量,把偷下来的卖给一些他们的顾客。

“有一天,有个自称政府调查员的人来看我,跟我索要红包。他说,他掌握我们运货员舞弊的证据。并以此要挟说,如果我不答应的话,他要把证据转交给地方检察官。这时候,我才发现公司有这种非法的买卖。

“当然,我知道我没有什么好担心的——至少跟我个人无关。但是我也知道法律规定,公司应该为员工的行为负责。还有,万一案子打到法院去,上了报纸,这种坏名声就会毁了我的生意。我对自己的生意非常骄傲——我父亲在24年前为此打下了基础。

“我生病了,三天三夜吃不下睡不着。我一直在那件事情里面打转。我是该付那笔钱——5000美金,还是该跟那个人说,你爱怎么干就怎么干吧?我一直决定不下,每天晚上都在噩梦中度过。

“在事情发生后的某一个礼拜天的晚上,我碰巧拿起一本叫做《如何不再忧虑》的小书,这是我去听卡耐基公开演说时拿到的。我读到威利·卡瑞尔的故事,里面说:‘面对最坏的情况。’于是我问自己:‘如果我不肯付钱,那个勒索者把证据交给地检处的话,可能发生的最坏情况是什么呢?’

“答案是:‘毁了我的生意——最坏就是如此。我不会被送进监狱。可能发生的,只是我会被这件事毁了。’

“于是我对自己说:‘好了,生意即使毁了,但我心理上可以接受这点,接下去又会怎样呢?’

“嗯,我的生意毁了之后,也许得去另外找份工作。这也不坏,我对石油知道得很多——有几家大公司可能会乐意雇用我……我开始觉得好过多了。三天三夜之后,我的那份忧虑开始消散了。我的情绪终于稳定了下来……而意外地,我居然能够开始思考了。

“我清醒地看出第三步——改善最坏的情况。就在我想解决方法的时候,一个全新的局面展现在我的面前:如果我把整个情况告诉我的律师,他可能会帮我找到一条我一直没有想到的路子。这乍听起来很笨,因为我起先一直没有想到这一点——我原先一直没有好好思想,只是一味在担心。我打定了主意,第二天清早就去见我的律师,接着我上了床,安安稳稳地睡了一觉。

“事情的结果如何呢?第二天早上,我的律师叫我去见地方检察官,把真实情形告诉他。我照他的话做了。当我说出原委之后,出乎意外地听到地方检察官说,这种勒索的案子已经持续好几个月了,那个自称是‘政府官员’的人,实际上是警方通缉犯。当我为了是否该把5000美金交给那个职业罪犯而担心了三天三夜之后,听到这番话,真是松了一大口气。

“这次的经历给我上了永难忘怀的一课。现在,每当面临会使我忧虑的难题时,我就把所谓的‘威利·卡瑞尔的老公式’派上用场。”

——引自延边人民出版社《人性的优点全集》

❹ 设计求解下列问题的类C语言算法,并分析其最坏情况时间复杂性及其量级。 1.在数组A(1..n)中查找

思路:
最坏情况比较次数
最好情况比较次数
求出平均比较次数
算出基本运算次数
得出时间复杂度 f(n)=O(g(n))

❺ 分别举一个印象最差最不成功最成功的广告案例,分析原因。

肯德基的所有广告。哗众取宠、立意滑稽、毫无美感。

❻ 设计求解下列问题的算法,并分析其最坏情况的时间复杂度及其量级。

intlocate(dataytpeA[1..n],dateytpek)
{i=n;
while((I<=n)&&(A[i]!=k))I++;
if(I<=n)return(i);
elsereturn(o);}
当查找不成功时,总是比较n+1次,所以,最坏时间复杂性为n+1。其量T(n)=O(n).
(2)VoidCZ_max(datatypeA[n],x,y)
{x=A[1];y=A[1];
for(I=2;I<=n;I++)
if(x<A[i]
{y=x;x=A[i];}
elseif(y<A[i]y=A[i];
}
若经条件判断语句为标准操作,则最坏情况时间复杂度为n-1,其量级为T(n)=O(n)

❼ 冒泡排序在最坏的情况下的比较次数为什么是n(n-1)/2

冒泡排序如1,2,3,4最好的情况是按完全升级排列,最坏就是数字完全按降序排列:

第一次是1:然后1和2,3,4。

第2次:2:比较谁比它小交换,于是2和34交换,答案是3421。

第3次为3:3和4。

交换机最后是4321;这就是最坏情况下的次数3+2+1=6=4*3/2;其实对于n个的话,升序的数字;最坏的情况就是如此:次数为:n-1+n-2.........+1=n*(n-1)/2

比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。

针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

(7)1最坏情况分析扩展阅读:

冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较,交换也发生在这两个元素之间。

所以,如果两个元素相等,是不会再交换的;如果两个相等的元素没有相邻,那么即使通过前面的两两交换把两个相邻起来,这时候也不会交换,所以相同元素的前后顺序并没有改变,所以冒泡排序是一种稳定排序算法。

❽ 作业 使用O分析比较名次排序、选择 排序、冒泡排序、插入排序最好 和最坏情况下的时间复杂性。

最坏情况下:直接选择排序:每次都要执行交换,总移动次数为(n-1)次交换 O(n) 冒泡排序:每比较一次都要进行一次交换 ,移动次数为 3n(n-1)/2 O(n2) 直接插入排序:n2/4 O(n2) 堆排序: O(nlog2n)所以,应该选D

❾ 算法分析中,为什么分析最坏情况而不是平均情况

哈哈,这个问题问得好!我记得我也问过老师这个问题,结果老师的答案是程序就是要看最差的时间,而且最差时间比较容易计算出来。比如说遍历一个二叉树,计算平均时间相当复杂,是2(1+1/n)ln n ,约等于1.38log n。需要一个求和,公式相当复杂(详见《数据结构:思想与实现》高教版204页) 所以,只用最坏了。好计算

❿ 设计求解下列问题的类C语言算法,并分析其最坏情况时间复杂性及其量级。(1),在数组A[1...n]中查找值为

算法如下: void max(datatype A[],datatype m,datatype sm) //datatype为C语言标准数据类型 { int i; m=sm=A[1];//m存放最大值,sm存放次最大值 for(i=2;i<=n;++i) if(A[i]>m) { sm=m;m=A[i]; } else if(A[i]>sm) sm=A[i]; } 为了得到最大值和次最大值,必须经过n-1次循环,所以最坏的时间复杂度为n-1,即O(n)。

阅读全文

与1最坏情况分析相关的资料

热点内容
79年拾元外汇换卷价格 浏览:263
工厂项目融资 浏览:193
解决融资难问题 浏览:473
投融资展会 浏览:904
能融资的网站 浏览:604
定增融资方案 浏览:497
美国股票万倍 浏览:776
融资骗局揭秘 浏览:864
海龙核科融资 浏览:818
凡客融资历史 浏览:453
营养品融资 浏览:256
影视制作企业用什么方式融资 浏览:215
风险融资6 浏览:857
明星融资 浏览:226
中国恒嘉融资租赁 浏览:760
交易性金融资产投资 浏览:176
金融工程专业可报考期货操盘师吗 浏览:625
云学堂融资 浏览:327
国泰君安融资保证金 浏览:84
东方信远融资租赁 浏览:684