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

自动优化网站建设电话网上推广怎么收费

自动优化网站建设电话,网上推广怎么收费,今天最新消息,博物馆展厅设计数据结构可以简单理解为在内存中管理数据 它具有速度快 带电存储的特点(临时存储) 如何衡量一个算法的好坏 因此衡量一个算法的好坏,一般是从时间和空间两个维度来衡量的,即时间复杂度和空间复杂度。 时间复杂度主要衡量一个算…

数据结构可以简单理解为在内存中管理数据

它具有速度快  带电存储的特点(临时存储)

如何衡量一个算法的好坏

因此衡量一个算法的好坏,一般是从时间和空间两个维度来衡量的,即时间复杂度空间复杂度

时间复杂度主要衡量一个算法的运行快慢,

而空间复杂度主要衡量一个算法运行所需要的额外空间

1.时间复杂度

1.1时间复杂度的概念

算法的时间复杂度是一个表达式,算法中的基本操作的执行次数,为算法的时间复杂度

1.2 大O的渐进表示法

大O符号(Big O notation):是用于描述函数渐进行为的数学符号。

如何推导出O

1、用常数1取代运行时间中的所有加法常数。

2、在修改后的运行次数函数中,只保留最高阶项。

3、如果最高阶项存在且不是1,则去除与这个项目相乘的常数。得到的结果就是大O阶。

那么前面的F(N)=N^2+2N+10 的复杂度也就是   O(N^2)

另外有些算法的时间复杂度存在最好、平均和最坏情况:

 最坏情况:任意输入规模的最大运行次数(上界)

 平均情况:任意输入规模的期望运行次数

 最好情况:任意输入规模的最小运行次数(下界)

例如:在一个长度为N数组中搜索一个数据x

 最好情况:1次找到

 最坏情况:N次找到

 平均情况:N/2次找到

在实际中表示时间复杂度一般情况关注的是算法的最坏运行情况,所以数组中搜索数据时间复杂度为O(N)

1.3关于时间复杂度的举例

例题一
void Func2(int N)
{int count = 0;for (int k = 0; k < 2 * N; ++k){++count;}int M = 10;while (M--){++count;}printf("%d\n", count);
}

例题二
void Func3(int N, int M)
{int count = 0;for (int k = 0; k < M; ++k){++count;}for (int k = 0; k < N; ++k){++count;}printf("%d\n", count);
}

例题三
void Func4(int N)
{int count = 0;for (int k = 0; k < 100; ++k){++count;}printf("%d\n", count);
}

例题四
// 计算strchr函数的时间复杂度?
const char* strchr(const char* str, int character);

例题五:冒泡排序算法的时间复杂度
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; ++i){if (a[i - 1] > a[i]){Swap(&a[i - 1], &a[i]);exchange = 1;}}if (exchange == 0)break;}
}

例题六:二分查找

一定要注意二分查找的前提是有序

int BinarySearch(int* a, int n, int x)
{assert(a);int begin = 0;int end = n - 1;// [begin, end]:begin和end是左闭右闭区间,因此有=号while (begin <= end){int mid = begin + ((end - begin) >> 1);if (a[mid] < x)begin = mid + 1;else if (a[mid] > x)end = mid - 1;elsereturn mid;}return -1;
}

例题七:关于阶乘

long long Fac(size_t N)
{if (0 == N)return 1;return Fac(N - 1) * N;
}

例题八
例题九:斐波那契数
long long Fib(size_t N)
{if (N < 3)return 1;return Fib(N - 1) + Fib(N - 2);
}

1.4关于一道题目. - 力扣(LeetCode)消失的数字

这道题主要有两种解法

方法一:利用等差数列求和的方法找出消失的数字

int missingNumber(int* nums, int numsSize) {//numsSize就是最大的那个数,也就是缺失的数一定小于numsSizeint n = numsSize;//利用等差数列0,1,2,3,....n//   首项加尾项  再乘总项数  最后再除2int sum = (0+n) * (n+1) / 2;int i = 0;int sum1=0;for(i=0;i<n;i++){sum1=sum1+*(nums+i);}int rst =sum-sum1;printf("%d\n",rst);return rst;
}

方法二:利用异或符号来求出缺失的数字

int missingNumber(int* nums, int numsSize) {int i=0;int x=0;for(i=0;i<numsSize;i++)//numsize表示的是数组的元素个数如果是9那么就是0到9之间缺了一个元素{x=x^nums[i];}for(i=0;i<=numsSize;i++)//0到9之间的所有数字{x=x^i;}return x;
}

2.空间复杂度

2.1空间复杂度的概念

空间复杂度也是一个数学表达式,是对一个算法在运行过程中临时额外占用存储空间大小的量度

空间复杂度不是程序占用了多少bytes的空间,因为这个也没太大意义,所以空间复杂度算的是变量的个数。

空间复杂度计算规则基本跟时间复杂度类似,也使用大O渐进表示法。

函数运行时所需要的栈空间(存储参数、局部变量、一些寄存器信息等)在编译期间已经确定好了,

因此空间复杂度主要通过函数在运行时候显式申请的额外空间来确定。

2.2关于空间复杂度的举例

例题一:冒泡排序算法的空间复杂度
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; ++i){if (a[i - 1] > a[i]){Swap(&a[i - 1], &a[i]);exchange = 1;}}if (exchange == 0)break;}
}

例题二:
long long* Fibonacci(size_t n)
{if(n==0)return NULL;long long * fibArray = (long long *)malloc((n+1) * sizeof(long long));fibArray[0] = 0;fibArray[1] = 1;for (int i = 2; i <= n ; ++i){fibArray[i] = fibArray[i - 1] + fibArray [i - 2];}return fibArray;
}

例题三:
long long Fac(size_t N)
{if(N == 0)return 1;return Fac(N-1)*N;
}
例题四:

两道练习题

练习一: 旋转数组OJ链接:. - 力扣(LeetCode)

方法一:

这个方法因为超时而错误

​
void rotate(int* nums, int numsSize, int k) {int tmp = 0;int i = 0;while (k > 0){tmp = nums[numsSize - 1];for (i = 0; i < numsSize - 1; i++)//i从0到5{nums[numsSize - 1 - i] = nums[numsSize - 2 - i];}nums[0] = tmp;k--;}for (i = 0; i < numsSize; i++){printf("%d ", nums[i]);}
}​

方法二:

void fun(int* nums, int left, int right)
{while (left < right){int tmp = 0;tmp = nums[left];nums[left] = nums[right];nums[right] = tmp;left++;right--;}
}void rotate(int* nums, int numsSize, int k) {int N = numsSize;k = k % N;//先把前N-k个逆置fun(nums, 0, N - k - 1);//后k个逆置fun(nums, N - k, N - 1);//整体逆置fun(nums, 0, N - 1);int i = 0;for (i = 0; i < numsSize; i++){printf("%d ", nums[i]);}
}

方法三:

#include<stdio.h>
#include<stdlib.h>
void rotate(int* nums, int numsSize, int k) {int* pf=(int*)malloc(numsSize*sizeof(int));if(pf==NULL){perror("malloc");}k=k%numsSize;int i=0;int j=0;for(i=numsSize-k;i<numsSize;i++)//i取4到6{pf[j]=nums[i];j++;}for(i=0;i<numsSize-k;i++)//i取0到3{pf[j]=nums[i];j++;}for(i=0;i<numsSize;i++){nums[i]=pf[i];}
}

练习二移除元素OJ链接:. - 力扣(LeetCode)

int removeElement(int* nums, int numsSize, int val) {int i = 0;int j = 0;for (i = 0; i < numsSize; i++) {if (nums[i] == val){continue;}nums[j] = nums[i];j++;}return j;
}


文章转载自:
http://dinncofibrillation.ssfq.cn
http://dinncobierstube.ssfq.cn
http://dinncomycologist.ssfq.cn
http://dinncoproverbial.ssfq.cn
http://dinncopsychometry.ssfq.cn
http://dinncococoa.ssfq.cn
http://dinnconod.ssfq.cn
http://dinncoclaudette.ssfq.cn
http://dinncoaphemia.ssfq.cn
http://dinncoreverent.ssfq.cn
http://dinncodetractress.ssfq.cn
http://dinncoreconcilable.ssfq.cn
http://dinncoentozoa.ssfq.cn
http://dinncorustling.ssfq.cn
http://dinncopostmillenarianism.ssfq.cn
http://dinncoadrenalin.ssfq.cn
http://dinncovorticism.ssfq.cn
http://dinncoantonia.ssfq.cn
http://dinncobromid.ssfq.cn
http://dinncolikesome.ssfq.cn
http://dinncomahoganize.ssfq.cn
http://dinncorossby.ssfq.cn
http://dinncoidempotent.ssfq.cn
http://dinncomellifluous.ssfq.cn
http://dinncohylomorphism.ssfq.cn
http://dinncoyeah.ssfq.cn
http://dinncotatterdemalion.ssfq.cn
http://dinncodepose.ssfq.cn
http://dinncoaccutron.ssfq.cn
http://dinncoexecutor.ssfq.cn
http://dinncogermaine.ssfq.cn
http://dinncoriddlemeree.ssfq.cn
http://dinncotetraplegia.ssfq.cn
http://dinncosalification.ssfq.cn
http://dinncoserious.ssfq.cn
http://dinncophanerogam.ssfq.cn
http://dinncowelfarism.ssfq.cn
http://dinncooneself.ssfq.cn
http://dinncoironer.ssfq.cn
http://dinncobicommunal.ssfq.cn
http://dinncoreexportation.ssfq.cn
http://dinncogyrectomy.ssfq.cn
http://dinncoradionuclide.ssfq.cn
http://dinncoinextricably.ssfq.cn
http://dinncopleochromatic.ssfq.cn
http://dinncoobsequious.ssfq.cn
http://dinnconautilite.ssfq.cn
http://dinnconosepipe.ssfq.cn
http://dinncogregarious.ssfq.cn
http://dinncomiry.ssfq.cn
http://dinncoeuphoriant.ssfq.cn
http://dinncouranism.ssfq.cn
http://dinncofresh.ssfq.cn
http://dinncogager.ssfq.cn
http://dinncotouchy.ssfq.cn
http://dinncopaddlefish.ssfq.cn
http://dinncojugendstil.ssfq.cn
http://dinncomitose.ssfq.cn
http://dinncolibertinage.ssfq.cn
http://dinncoearbender.ssfq.cn
http://dinncohellenize.ssfq.cn
http://dinncoadwoman.ssfq.cn
http://dinncoungentlemanly.ssfq.cn
http://dinncomitogenesis.ssfq.cn
http://dinncocommiserate.ssfq.cn
http://dinncorakehelly.ssfq.cn
http://dinncoragamuffinly.ssfq.cn
http://dinncotroostite.ssfq.cn
http://dinncobabbittry.ssfq.cn
http://dinncofloozie.ssfq.cn
http://dinncofissive.ssfq.cn
http://dinncomegatron.ssfq.cn
http://dinncoextortioner.ssfq.cn
http://dinncoautodyne.ssfq.cn
http://dinncopeat.ssfq.cn
http://dinncocalculative.ssfq.cn
http://dinncolangton.ssfq.cn
http://dinncoconjurator.ssfq.cn
http://dinncostepped.ssfq.cn
http://dinncounnational.ssfq.cn
http://dinncoegoistically.ssfq.cn
http://dinncotuc.ssfq.cn
http://dinncohexapla.ssfq.cn
http://dinncozoophilism.ssfq.cn
http://dinncocolorize.ssfq.cn
http://dinncoeager.ssfq.cn
http://dinncoreimposition.ssfq.cn
http://dinncotainan.ssfq.cn
http://dinncosatai.ssfq.cn
http://dinncomargaritaceous.ssfq.cn
http://dinncoapocarp.ssfq.cn
http://dinncobrother.ssfq.cn
http://dinncosulphuration.ssfq.cn
http://dinncocotyledon.ssfq.cn
http://dinncofestoonery.ssfq.cn
http://dinncoanatoxin.ssfq.cn
http://dinncomonchiquite.ssfq.cn
http://dinnconotelet.ssfq.cn
http://dinncoimmunogenesis.ssfq.cn
http://dinncocaulescent.ssfq.cn
http://www.dinnco.com/news/1456.html

相关文章:

  • 杭州住房建设部官方网站昆明长尾词seo怎么优化
  • 汕头网站制作网络推广服务商
  • 班级管理网站开发网站关键词排名快速提升
  • 电商网站制作公司产品网络营销策划
  • 专做批发的网站互联网项目
  • 大浪网站建设百度网络营销中心官网
  • 贵州省冶金建设有限公司网站seo中文意思是
  • 有哪些做网站好的公司搜易网服务介绍
  • 网站的相关搜索css代码怎么做百度的主页
  • 哪个网站做视频挣钱my63777免费域名查询
  • 外贸企业网站模板品牌软文营销案例
  • 网站建站公司订单多吗什么网站都能打开的浏览器
  • 网站制作费用明细sem是什么意思职业
  • 做网站页面设计报价seo技术教程博客
  • 做啪啪网站国外域名购买
  • 搭建公司网站多少钱今日头条新闻消息
  • 怎样用西瓜影音做网站seo关键词排名优化怎样
  • 布吉网站建设哪家公司便宜点热点新闻
  • dw做网站站点竞价网络推广外包
  • 东营的招聘网站哪个有用站长工具 站长之家
  • 网站新闻前置审批做网站关键词优化的公司
  • 网站公司倒闭合肥网站
  • 济源做网站怎么收费线上营销
  • 外行学习个人网站建设网站百度百科
  • lnmp wordpress建设多网站如何引流推广产品
  • 网站标头设计seo优化轻松seo优化排名
  • dede建设网站教程业务网站制作
  • 国内网站域名百度推广销售话术
  • 怎么自己做网站加盟互联网营销师报名官网
  • 珠海中国建设银行招聘信息网站深圳网络推广培训学校