数据结构10

阾接表:
边:
顶点下标
下一条边的地址
顶点:
数据
指向第一条边的指针
图:
由顶点组成的数组
顶点数量cnt
优点:可以节约存储空间,计算入度麻烦。

十字链表:
边:
弧尾下标
弧头下标
指向相同弧尾的下一条边
指向相同弧头的下一条边

顶点:
数据
指向第一条边的指针
指向入度的边
图:
由顶点组成的数组
顶点数量cnt

阾接多重表:
是一种专门存储无向图的一种结构。
边:
i,j 两个互相依附的顶点的下标
inext 指向下一个依附i项点的边
jnext 指向下一个依附j项点的边

顶点:
数据
指向与顶点有关系的一条边。

图:
由顶点组成的数组。
顶点数量
算法:
输入: 算法具有0个或多个输入
输出: 算法至少有1个或多个输出
有穷性: 算法在有限的步骤之后会自动结束而不会无限循环,并且每一个步骤可以在可接受的时间内完成
确定性:算法中的每一步都有确定的含义,不会出现二义性
可行性:算法的每一步都是可行的,也就是说每一步都能够执行有限的次数完

如果评价一个算法:
时间复杂度:由于计算机的性能不同,无法准确统计出算法执行所需要的时间。
因此我们用算法执行的次数来代表算法的时间复杂度,O(公式),一般忽略常数。

  常见的时间复杂度:
     // O(1)
     printf("%d",i); 
     // O(logn)
     for(int i=n; i>=0; i=i/2)
     {
        printf("%d",i);
     }
     // O(n)
     for(int i=0; i<n; i++)
     {
        printf("%d",i);
     }
     // O(nlogn)
     for(int j=0; j<n; j++)
     {
        for(int i=n; i>=0; i=i/2)
        {
           printf("%d",i);
        }
     }
     // O(n^2)
     for(int i=0; i<n; i++)
     {
        for(int j=0; j<n; j++)
        {
           printf("%d",i*j);
        }
     }

查找算法:
顺序查找:
对待查找的数据没有要求,时间复杂度: O(n)
二分查找:
对待查找的数据必须有序,时间复杂度: O(logn)
块查找
哈希查找

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值