【数据结构】算法——一个决定你程序效率高低的重要因素

前言

在这里插入图片描述
今天是总结的第二天,早起的鸟儿有虫吃,早起的虫儿被鸟吃。。。
其实我一直在想,写这一篇,到底是用哪一本书的哪一章来总结。因为这个标题的醒目,肯定会有人以为这一章写代码。最后还是决定了,这一章,主要是来推导一些我们平时见到的,但是却不懂的定义。又是很枯燥的一早上,加油奥里给。。。

数据结构和算法关系

虽然这个标题起的叫数据结构,但是我却总结算法。。。我不是没事找抽,只是呢,在学数据结构的时候,算法是你肯定离不开的东西。
你平时在网上看到的那些文章,在你不经意间搜的时候,是不是都是搜的数据结构与算法这七个字。这说明啥,这说明他们俩是离不开的。
给你打个比方,你想看德云社相声(我也想看),有一天你最想看小岳岳专场,想看小白专场。但是呢,走到园子里之后发现,他们今天生病了,换成了另一批人,你开心吗,不开心对不对。
所以,数据结构和算法也是这样的。没有其中的任何一个都不行。
但是,根据大学里边的概念性的东西来说,类似于我们学校,算法是单独开设课程,并不是和数据结构一起。所以,这一章还是理论。

高斯求和

想必看到这儿的人肯定对这个人早有耳闻。
如果让你来做累加求和,你肯定会写这样的代码:

int sum=0;
int n=100;
for(int i=0;i<=n;i++){
   
sum+=i;
}

这样做确实没错,但是问题来了,你这和循环了多少次?如果没写错的话,是101次吧。为什么呢,因为你在每次累加的时候都会去走一遍for循环,这样就会平平增加不必要的时间去运算,你有这时间,你根本就抢不到亚索。

我们直接来看这个天才当时是怎么做的。
因为sum=1+2+3+…+100。
但是呢,sum=100+99+98+…+1
如果把他们两个加起来,那就是2sum=101+101+101+…+101
一共多少个101,100个吧,那如果去除2呢,结果不就是5050了。用代码怎么写?

int i=0;
int sum=0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

「已注销」

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值