第一种方法:设定一个从i开始的计数,然后再以j为起点,k不断变化,算和算法复杂度是o(N*N*N)

第二种是第一种的改进算法复杂度是O(N*N)

第三中是最直接的 。算法复杂度是O(N) 它隐藏着条件。从正数开始,如果和为0就重新开始计算。

第四种方式,递归。时间复杂度是 O(NlogN)

递归算法的时间复杂度怎么计算呢?

重点说下递归。

说实话我也不太清楚多次递归,一直很困惑,通过输出检测,发现递归函数实际上始终只有一个递归栈的。

int arr[7] = {2,-1,3,-4,1,2,-3};

这个数组其实会被不断的运算直到左边=右边

数组的计算过程是   06 的左边  03和4,6

03又被解析成01和23 然后01被分解成00和11

递归真是一个有意思的东西哦。

最后附上代码

#include

int get_max_in_three(int a,int b,int c){

if(a > b){

if(a > c){

return a;

}else{

return c;

}

}else{

if( b > c){

return b;

}else{

return c;

}

}

}

int bestqueue(int *arr ,int left,int right){

int i,center;

int left_max,right_max;

int left_bord_sum,left_bord_max;

int right_bord_sum,right_bord_max;

if(left == right){

if(arr[left] > 0){

return arr[left];

}

else

{

return 0 ;

}

}

center = (left + right)/2;

left_max = bestqueue(arr,left,center);

right_max = bestqueue(arr,center+1,right);

left_bord_sum = left_bord_max = 0;

for(i=center;i>=left;i--){

left_bord_sum += arr[i];

if(left_bord_sum > left_bord_max){

left_bord_max = left_bord_sum;

}

}

right_bord_sum = right_bord_max = 0;

for(i=center+1;i<=right;i++){

right_bord_sum += arr[i];

if(right_bord_sum > right_bord_max){

right_bord_max = right_bord_sum;

}

}

return get_max_in_three(left_max,left_bord_max+right_bord_max,right_max);

}

int maxqueue_qute(int arr[],int len){

int i,j,k,sum,max;

max = 0;

for(i=0;i

for(j=i;j

sum = 0;

for(k=i;k<=j;k++){

sum += arr[k];

}

if(sum > max){

max = sum;

}

}

}

return max;

}

int maxqueue_qute_more(int arr[],int len){

int i,j,sum,max;

max = 0;

for(i=0;i

sum = 0;

for(j=i;j

sum += arr[j];

if(sum > max){

max = sum;

}

}

}

return max;

}

int maxqueue_qute_fast(int arr[],int len){

int i,max,sum;

max = sum = 0;

for(i=0;i

sum += arr[i];

if(sum

sum = 0;

}

if(sum > max){

max = sum;

}

}

return max;

}

int main(int argc, char const *argv[])

{

int max;

int arr[7] = {2,-1,3,-4,1,2,-3};

printf("%d\n", maxqueue_qute(arr,7));

printf("%d\n", maxqueue_qute_more(arr,7));

printf("%d\n", maxqueue_qute_fast(arr,7));

printf("%d\n", maxqueue_rec(arr,0,6));

printf("%d\n", bestqueue(arr,0,6));

printf("end");

return 0;

}

matlab simhash,最大非负的序列和 - 轻舞凋零的个人空间 - OSCHINA - 中文开源技术交流社区...相关推荐

  1. java 全排列非递归算法_全排列的非递归算法 - osc_ivkc73ze的个人空间 - OSCHINA - 中文开源技术交流社区...

    1.全排列的定义和公式: 从n个数中选取m(m<=n)个数按照一定的顺序进行排成一个列,叫作从n个元素中取m个元素的一个排列.由排列的定义,显然不同的顺序是一个不同的排列.从n个元素中取m个元素 ...

  2. 精英主义 遗传算法 matlab,遗传算法优化 - osc_lfs4vsih的个人空间 - OSCHINA - 中文开源技术交流社区...

    1.遗传算法简介 遗传算法是一种基于自然选择和群体遗传机理的搜索算法,它模拟了自然选择和自然遗传过程中的繁殖.杂交和突变现象.再利用遗传算法求解问题时,问题的每一个可能解都被编码成一个"染色 ...

  3. matlab一计算自动四舍五入6,matlab总结 - osc_msmij2gf的个人空间 - OSCHINA - 中文开源技术交流社区...

    MATLAB 总结 一 基础部分 1.save('x','y','z') 保存三个变量 2.load('var') 加载变量 3.help size who dir cd delete clear 4 ...

  4. 频率域滤波matlab函数,频率域滤波(2) - osc_t0xmr011的个人空间 - OSCHINA - 中文开源技术交流社区...

    一.频率域滤波的基本步骤: 1)使用函数tofloat把输入图像转换为浮点图像(im2double函数也可以) [f,revertclass] = tofloat(f) 2)使用函数paddedsiz ...

  5. matlab 康托尔集,测测你的数学直觉 - Dagis的个人空间 - OSCHINA - 中文开源技术交流社区...

    已知: 新冠测试的准确率: 新冠患者被测出positive的概率是0.9 非新冠患者被测试出negative的概率是0.9 整个人群的新冠患者比例是0.1 如果一个人被测试出positive,那他是新 ...

  6. php是阻塞模式吗,PHP非阻塞模式 - 黑白大熊猫的个人空间 - OSCHINA - 中文开源技术交流社区...

    by 尘缘 on 七月 31st, 2014 // Filed Under → php 让PHP不再阻塞当PHP作为后端处理需要完成一些长时间处理,为了快速响应页面请求,不作结果返回判断的情况下,可以 ...

  7. matlab提示音,matlab发出声音 - osc_45mm6g1p的个人空间 - OSCHINA - 中文开源技术交流社区...

    我有时候运行一段很长的代码,在等待的时候去做别的事,希望程序运行完可以有一个提示音. 这可以用matlab的一个函数sound实现,该函数的输入参量是音频数据向量.采样频率和转换位数. % 响一声 s ...

  8. c语言输出法雷序列,法雷(法里)序列 - osc_h0wb1wlt的个人空间 - OSCHINA - 中文开源技术交流社区...

    定义: 对任意给定的一个自然数n,将分母小于等于n的不可约的真分数按升序排列,并且在第一个分数之前加上0/1,在最后一个分数之后加上1/1,这个序列称为n级法雷数列,即法雷数列是0和1之间最简分数升序 ...

  9. php命名空间非限定名称,PHP命名空间 - osc_nnp3dgfb的个人空间 - OSCHINA - 中文开源技术交流社区...

    1.概述 命名空间是PHP为了解决重名问题推出的机制,密码空间可以认为地将内存进行分隔,让不同内存区域的同名结构得以共存,类似操作系统中文件夹的概念 基础语法:namespace space_name ...

最新文章

  1. 重新mysql-server
  2. C++11 类型后置语法
  3. ARM体系结构及内核回顾总结(一)
  4. 函数定义、函数参数、跨脚本调用函数
  5. JAVA中 fastjson判断JSONObject是否为空,方法isEmpty()
  6. 自我提高网站list
  7. 学生个人网页设计作品 学生个人网页模板 简单个人主页成品 个人网页制作 HTML学生个人网站作业设计代做
  8. HTTP请求时POST参数到底应该怎么传?
  9. 以图搜图 图像匹配_百度识图:以图搜图找到相似图片原理分析
  10. iPhone防止系统自动下载更新
  11. 阿里云 Teambition 网盘亲测体验,秀翻全网!
  12. Android GreenDao
  13. 凯文.都迪的超级记忆力训练教程
  14. 关于linux下VNC服务的一些介绍(本文章是基于tigervnc)
  15. 王权富贵:使用pytorch复现Fater-RCNN
  16. 上网行为安全之防火墙端口映射及应用
  17. ZCMU1411:喜闻乐见的a+b
  18. thinkphp5阿里云SDK短信验证
  19. 管理者运动初衷不是竞技,只为健康吗?
  20. 5G Massive MIMO的概念和优点总结

热门文章

  1. 几种常用信号平滑去噪的方法(附Matlab代码)
  2. arcgis不闭合线转面_如何将ArcGIS不闭合线转化为面:编辑拓扑
  3. 即时通讯源代码,im源码功能全套
  4. HA_ProxyCap_v302
  5. pc-com串口(DB9)管脚定义和单片机uart串口
  6. 【数字信号处理及MATLAB实践】
  7. C语言局域网对战游戏,局域网聊天的程序(C++版)
  8. Qt工程生成MiniDump文件
  9. Odoo 16 企业版手册 - CRM (2)
  10. Java8与游戏开发(一)