什么是数据结构和算法?

1.什么是数据结构?

2.什么是算法?解决问题的方法

1+2+3+4+5+6+......+1000   ---------->累加法:一个个的加

                                           ----------->利用等差数列求和公式直接算出答案

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

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

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

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

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

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

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

void fun(int n){                                     第一轮 i = 1

      int i = 1;                                     第二轮 i = 2
   while(i<n){                                       第三轮 i = 4
       i = i*2;                                      第三轮 i = 8

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

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

时间复杂度是研究:数据总量n和执行次数Y之间的关系。

void fun (int n){
    int i = 0
  while(i*i*i<n){                                        
        I++;
         }
         }

C.O(3倍的根号n)                                         
                                            第一轮:i=0
                                            第二轮:i=1
                                            第三轮:i=2
                                            第四轮:i=3
                                              ......
                                            第五轮:i=(y-1)
                                            
                                            (y-1)*(y-1)*(y-1)= n
                                                y^3=n
                                               y=n^1/3
x = 2
whlie(x<n/2){
x = x * 2;
     }



第一轮:x = 2
第二轮:x = 4
第三轮:x = 8
第四轮:x = 16
  .....
第y轮:x = 2^y


2 ^ y =n--------->y=log2n
x = 0
while (n>(x+1)*(x+1)){
x = x + 1;
     }
 

第一轮:x = 0
第二轮: x = 1
第三轮:x = 2
  .....
第y轮:x = y-1


y^y =n
y=?
i = 1
while(i<n--1){
k = k+10*i
i++;
}

一轮:i = 1
二:  i = 2
三:  i = 3
....
y:i = y


y = n-1

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值