数据结构和算法

5 7 6 2 0 3 1 4 

57620314

插入数据9

576291314

什么是数据结构?

数据结构是指数据元素之间的关系和组织方式,是一种用来存储和组织数据的方式。数据结构可以帮助我们更有效地管理和操作数据,提高程序的效率和性能。常见的数据结构包括数组、链表、栈、队列、树、图等。在计算机科学中,数据结构是非常重要的基础知识,对于编写高效的算法和程序至关重要。

什么是算法?

算法就是解决问题的方法

例:1+2+3+4+5+6+7+8+......+1000

累加法

利用等差公式算出答案

算法是解决特定问题或执行特定任务的一系列步骤或规则。在计算机科学中,算法通常是用来描述如何执行计算、数据处理或自动推理的方法。算法可以用来解决各种问题,如排序、搜索、最短路径查找等。算法的设计和分析是计算机科学的一个重要领域。

如何判别算法的优劣?

通过时间复杂度来判别

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

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

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

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

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

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

例:

例题1:

void fun(int n){
    int i = 1
    while(i<n){
    i = i*2;
    }
    }

A.O(n)        B.O(n^2)        C.O1        D.O(logn)

解:

第一轮: i = 1

第二轮: i = 2

第三轮: i = 4

第四轮: i = 8

第五轮: i = 16

.......

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

2^(y-1) = n -------------> y = log2n

例题2:

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

第一轮: i = 0

第二轮: i = 1

第三轮: i = 2

第四轮: i = 3

.......

第y轮: i = (y-1)

(y - 1)* (y - 1)* (y - 1) = n

y^3 = n

y = n^1/3

例题3:

    x = 2
while(x<n/2){
    x =x *2;
    }

第一轮:x = 2

第二轮:x = 4

第三轮:x = 8

第四轮:x = 16

......

第y轮:x = 2^y

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

例题4:

    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 = 根号n

例题5:

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

第一轮:i = 1

第二轮:i = 2

第三轮:i = 3

......

第y轮:i = y

y = n-1

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值