当前位置: 首页 > news >正文

学习数据结构和算法的第3天

常数循环的复杂度

计算Func4的时间复杂度

voidFunc4(int N)
{
int count = 0;
for (int k = 0; k < 100; ++ k)
{
++count;
}
printf("%d\n", count);
}

O(1) 不是代表算法运行一次,是常数次

strchar的时间复杂度

#include<stdio.h>
void const char*strchr(const char*str,int character);
{while(*str){if(*str==character)return 0;else++str;}
}

假设查找的是h 1 最好情况:任意输入规模的最小运行次数(下界)

假设查找的是w N/2 平均情况:任意输入规模的期望运行次数

假设查找的是d N 最坏情况:任意输入规模的最大运行次数(上界)

当一个算法随着输入不同,时间复杂度不同,时间复杂度做悲观预期,看最坏的情况

冒泡排序的时间复杂度

计算Bubb1esort的时间复杂度

void BubbleSort(int* a, int n)
{assert(a)for (size_t end = n; end > 0; --end){int exchange = 0;for (size_t i=1; i < end; ++1){if (a[1-1]> a[i]){Swap(&a[1-1], &a[i]);exchange = 1;}}if (exchange == 0)
break;}
}

精确:F(N)=N(N-1)/2* 一个等差数列

时间复杂度:O(N*2)

时间复杂度不能只看是几层循环,而是要去看它的思想

计算Binarysearch的时间复杂度:

int Binarysearch(int* a, int n, int x)
{assert(a);int begin= 0;int end = nl;while (begin < end){int mid = begin + ((end-begin)>>1);if (a[mid] < x)begin = mid+1;else if (a[mid] > x)end=mid;elsereturn mid;}
return -1;
}

F(N)=O(logN)

http://www.lryc.cn/news/294431.html

相关文章:

  • SpringBoot实战第三天
  • mysql学习打卡day22
  • Unity | Spine动画记录
  • 【Flink】FlinkSQL实现数据从MySQL到MySQL
  • python爬虫抓取新闻并且植入自己的mysql远程数据库内
  • netty实现简单的客户端、服务端互相发消息
  • 利用jmeter完成简单的压力测试
  • 【手写数据库toadb】toadb物理存储模型,数据库物理存储原理,物理文件组织关系以及行列混合模型存储结构
  • MySQL-----DDL基础操作
  • 【MySQL】在 Centos7 环境安装 MySQL -- 详细完整教程
  • 理解React中的setState()方法
  • 数据库管理-第144期 深入使用EMCC-01(20240204)
  • flask_django_python五金电商网络营销的可视化分析研究
  • Java并发(二十三)----同步模式之保护性暂停
  • ###C语言程序设计-----C语言学习(9)#函数基础
  • Dockerfile文件参数配置和使用
  • Java实现婚恋交友网站 JAVA+Vue+SpringBoot+MySQL
  • React16源码: React中详解在渲染阶段Suspend的源码实现
  • mac电脑风扇控制软件:Macs Fan Control Pro for mac 激活版
  • easyexcel解析跨多行的数据
  • 双目相机立体匹配基础
  • 【图论】网络流
  • 【Matplotlib】figure方法 你真的会了吗!?
  • [C++]继承(续)
  • 恒创科技:服务器内存不足影响大吗?
  • 深入理解网络通信和TCP/IP协议
  • Open CASCADE学习|分割曲线
  • vulhub中Adminer远程文件读取漏洞复现(CVE-2021-43008)
  • MOS管驱动电流估算-Qg参数
  • Vision Transfomer系列第一节---从0到1的源码实现