Hello CNBLOGS!Hello Everyone!

这是我的第一篇blog,所以这也是一篇试验性的blog。

这个学期我和很多同学一样选修了邹欣老师的现代程序设计这门专业课。第一次看到使用GitHub、写博客这样高大上的作业要求,我感觉很兴奋也很有压力。也希望能在这门课上通过自己的努力,取得更多的收获和更大的进步。

这里要说明一点:“第一次作业的截止日期是9月20号”,可是这个消息发布的时候却恰逢中秋佳节,我和不少同学一样都不在学校。而当我22号回来的时候才发现了“迟交作业者一律0分”的这个悲情消息。

助教学长:第一次的作业确实不是本人故意不交,实在是事出有因,所以在此向您表示道歉,希望您能原谅。不奢求能加回什么分数,但求把情况说明,以后避免这类问题再次发生。

那么现在补完成第一次作业的内容:

1、个人信息
学号11061036
GitHub帐号:ElendirChen
博客园 个人页面网址:http://www.cnblogs.com/elendir/
 
2、教科书选择: 代码大全
 
3、一维最大子数组的和问题
代码已经传入GitHub repository中
现转贴于此:
 #include <iostream>
using namespace std;
int main()
{
int i,n,f[][]={},a[]={};
printf("Please enter the number of input:");
scanf("%d",&n);
printf("Then please enter your input:");
for(i=;i<=n;i++){
scanf("%d",&a[i]);
}
f[][]=a[];f[][]=a[];
for(i=;i<=n;i++){
if(f[][i-]+a[i]>=f[][i-] && f[][i-]+a[i]>=a[i])f[][i]=f[][i-]+a[i];
if(f[][i-]+a[i]<=f[][i-] && f[][i-]>=a[i])f[][i]=f[][i-];
if(f[][i-]+a[i]<=a[i] && f[][i-]<=a[i])f[][i]=a[i];
if(f[][i-]>=)f[][i]=f[][i-]+a[i];
else f[][i]=a[i];
//f[0][i]=f[1][i-1]+a[i] f[0][i-1] a[i];
//f[1][i]=f[1][i-1]+a[i] a[i]
}
printf("The maximum value of sub-array is :%d\n",f[][n]);
system("pause");
return ;
}

算法描述:
对于输入一维数组a[]  定义

f[0][i] 表示从a数组第0号元素到第i号元素的子数组中的 最大子数组和

f[1][i] 表示从a数组第0号元素到第i号元素的子数组中的 最大子数组和(其中a[i]元素必须被选取)

则存在以下递推式:

f[0][i]=max{f[1][i-1]+a[i],f[0][i-1],a[i]}

f[1][i]=max{f[1][i-1]+a[i],a[i]}

所求出f[0][n]即为题目要求从a数组第0号元素到第n号元素的子数组中的 最大子数组和

算法时间复杂度O[n]

所解决元素规模与a数组定义的大小有关(故本例只能解决1000个元素以下的问题)

至此这篇blog差不多就结束了哈,祝好~! Elendir

My First Blog on cnblogs (现代程序设计 Homework-01)的更多相关文章

  1. 现代程序设计homework——04

    题目: 详见:http://www.cnblogs.com/xinz/p/3341551.html 题目本身确实很难,“很难想到一个比较优雅的算法”,这是一个老师请来专门讲解这道题的大牛的原话.确实, ...

  2. My new Blog on cnblogs

    My New Blog 这是菜鸡Herself32在博客园新开的Blog,一部分文章会同时加载到这里. 也欢迎访问主站:https://herself32.github.io QwQ

  3. My First Blog in Cnblogs

    终于打算从csdn搬到博客园了 虽然在csdn只写过三篇文章,不过打算写第四篇的时候发现原先的三篇都消失了.联系客服最终还是找回了,不过对于csdn神奇的管理方式还是不放心,也没在csdn上再写过文章 ...

  4. My first blog on cnBlogs!

    以后会长期更新自己的心得体会!以此锻炼自己,奋发向前.

  5. my first blog by cnblogs

    #include <stdio.h> int main() { printf("hello everyone."); ; } 上面为我的第一个C语言测试代码,仅供初学者 ...

  6. Here is a test page for my new blog in cnblogs

    Tell me if I can use Fomula like LaTeX $$\sum\limits_{i = 1}^{n}a_i$$

  7. 阅读摘录《javascript 高级程序设计》01

    前言: 因为工作需要,所以开始主攻前台JS方面的技术.在以前的工作中,使用过这门脚本语言.但是都是比较凌乱的,用到什么学什么,只是为了实现业务,而去使用. 不会考虑到代码优化,封装对象等.今次特意借了 ...

  8. 标准C程序设计七---01

    Linux应用             编程深入            语言编程 标准C程序设计七---经典C11程序设计    以下内容为阅读:    <标准C程序设计>(第7版) 作者 ...

  9. javascript高级程序设计--笔记01

    概述 JavaScript的实现包含三个部分: 1  核心(ECMAScript)   提供核心语言功能 2  文档对象模型(DOM)  一套提供了访问以及操作网页内容的API 3  浏览器对象模型( ...

随机推荐

  1. 查看局域网内某个ip的mac地址

      首先需要ping一下对方的ip,确保本地的arp表中缓存对方的ip和mac的关系 C:\Windows\System32>ping 192.168.1.231 正在 Ping 192.168 ...

  2. org.hibernate.HibernateException: Could not parse configuration: /hibernate.cfg.xml

    org.hibernate.HibernateException: Could not parse configuration: /hibernate.cfg.xml at org.hibernate ...

  3. 一个java高级工程师的进阶之路

    宏观方面 一. JAVA.要想成为JAVA(高级)工程师肯定要学习JAVA.一般的程序员或许只需知道一些JAVA的语法结构就可以应付了.但要成为JAVA(高级) 工程师,您要对JAVA做比较深入的研究 ...

  4. HelloX操作系统网络功能简介及使用和开发指南

    HelloX网络功能简介及使用和开发指南 HelloX网络功能简介 作为物联网操作系统,网络功能是必备的核心功能之一.按照规划,HelloX实现了两个不同类型的TCP/IP协议栈,一个面向资源受限的嵌 ...

  5. Android-取消GridView/ListView item被点击时的效果

    方法一,在控件被初始化的时候设置 gridView.setSelector(new ColorDrawable(Color.TRANSPARENT)); listView.setSelector(ne ...

  6. Windows Phone 离主流系统还很远

    调查机构 Kantar Worldpanel 在本月发布全球智能手机份额报告.报告显示,五月份除德国和澳大利亚出现下滑,Windows Phone 的市场份额在不少国家都实现增长. 英国,4.1% 升 ...

  7. 六种排序的C++实现

    class SortNum { public: SortNum(); virtual ~SortNum(); void exchange(int& b,int& c);//交换数据 v ...

  8. bzoj1036: [ZJOI2008]树的统计Count 树链剖分+线段树

    入门题 + 熟悉代码 /************************************************************** Problem: 1036 User: 96655 ...

  9. IOS NSNotificationCenter 通知的使用

    1.注册通知 [NSNotificationCenter defaultCenter] addObserver:self selector:@selector(notify) name:@" ...

  10. unity延时方法Invoke和InvokeRepeating

    MonoBehaviour里面有两个内置的延时方法 Invoke Invoke(methodName: string, time: float): void; methodName:方法名 time: ...