什么是数据结构和算法

数据结构就是指一组数据的存储结构。

算法就是操作数据的一组方法。

算法:累加法(一个一个的加);利用等差数列求和公式直接算出答案。

如何评判算法的优劣————————通过时间复杂度来进行判别

时间复杂度是如何计算出来的???

时间复杂度是研究数据总量x和算法执行次数y之间的关系

y = an +b(a是系数,b是常数)如果n非常大----->y=n(算法执行次数和数据总量直接相关)

y =  an^2+bn+c(ab是系数,c是常数)如果n非常大---->y=n^2(算法执行次数和数据总量的平法直接相关)---->O(n^2)

y=a(a是常数)------->算法的执行次数和数据总量没有任何关系------->O(1)

y=logn----->算法的执行次数和数据总量存在log别的关系------->O(logn)

void fun(int n){                          时间复杂度是研究数据总量x和算法执行次数y之间的关系

int i= 1;                                                                           第一轮: i = 1

while(i<n){                                                                    第二轮: i = 2

i = i *2;                                                                               第三轮:i = 4

}                                                                                         第四轮:i = 8

}                                                                                         第五轮:i =16          第 y轮i=2^(y-1)=n

o(logn)

O(logn)                                                                          2^y=n----------->y=log2n

C.O(3√n)                                                                          (y-1)*(y-1)=n

                                                                                            y^3 = n

x = 2:                                                                                  第一轮: x = 2

while(x<n/2){                                                                  第二轮 :x = 4

x=x*2;                                                                                 第三轮: x = 8

}                                                                                          第四轮: x = 16

                                                                                            ..............

                                                                                             第y轮: x= 2^y

                                                                                            2^y = n-----------y=log2n

x = 0                                                                                     第一轮:x=0

while(n>(x+1)*(x+1)){                                                            第二轮 :x=1

x =  x +1;                                                                              第三轮 : x=2

}                                                                                               ....

                                                                                            第y轮 : x = y-1

                                                                                             y*y = n

                                                                                             y= O(√n​)

i = 1;k=0;                                                                              第一轮 : i = 1

while(i<n-1){                                                                          第二轮 : i = 2

k = k+10*i;                                                                              第三轮 : i= 3

i++;                                                                                         .......

}                                                                                           y: i = y      O(n)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值