博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
homework-01
阅读量:5947 次
发布时间:2019-06-19

本文共 579 字,大约阅读时间需要 1 分钟。

homework-01

===========
我的这个程序是用C语言写的,关于求数组的子数组的最大和问题,点击cpp文件进入程序,开始运行之后按提示一次输入数组长度,
数组内容,回车即可输出最大子数组和及子数组的下标,在原数组中的位置,如输入数组长度是9,依次输入数组内容:-3 -4  6 4
-23 43 1 21 3回车可输出最大子数组和为68,对应子数组为43 1 21 3子数组在原数组中的位置是6~9

这个程序的主要部分是找到子数组和最大的那一个子数组的算法,如果直观一点可以使用三个循环找出所有子数组并分别求和从找的最大那个,但是时间复杂度将达到O(n^3),所以我使用了另一种方法,使用一个变量x,对数组s[]做循环,当x的值>0时,x+=s[i],如果x<0,意味着前面的子序列的和将小于或等于最大和,x的值跳到i的下一项,继续进行循环,如果有x>sum(最大和,初始为0),将x赋给sum,保证了始终有最大和,同时我使用了两个指针分别返回有最大和的那一子数组的始末下标

该算法的时间复杂度为O(n);

由于好长时间没写过C程序,有些东西不是很记得了,所以时间花的有点长,大约用了四个小时,进行了很多尝试,希望今后能更好,更快的完成作业吧!

 

转载于:https://www.cnblogs.com/quanhy/p/3327246.html

你可能感兴趣的文章
老板,让我们专注的工作【写给老板的一封信】
查看>>
LBS突围:从微信到微博
查看>>
SFB 项目经验-40-Skype for Business-呼入正常-呼出不正常
查看>>
吴忌寒江卓尔批“闪电网络”背后,是链圈和矿圈的的利益之争
查看>>
python的cls,self,classmethod,staticmethod
查看>>
应用系统中常见报表类型解析
查看>>
[Silverlight入门系列]使用MVVM模式(9): 想在ViewModel中控制Storyboard动画?
查看>>
3 项目计划
查看>>
SQL Server 2008 下载地址(微软官方网站)
查看>>
如何对已经发布过的InfoPath模板进行修改
查看>>
推荐系统高峰论坛
查看>>
移动互联
查看>>
basic4android 开发教程翻译(三)IDE 小贴士
查看>>
obj-c 定义一个类
查看>>
电脑APK
查看>>
HDU-4335 What is N? 欧拉函数,欧拉定理
查看>>
HDU 1044 Collect More Jewels(搜索,先bfs再dfs)
查看>>
使用RabbitMQ过程中遇到的一个问题(队列为空,但内存暴涨)以及与开发者的邮件沟通...
查看>>
C++/C学习笔记(九)
查看>>
ASP.net MVC 中Security.FormsAuthentication验证用户的状态(匿名|已登录)
查看>>