数据-第1课-进阶高手的大门

第1课-进阶高手的大门

  1. 理解程序的本质

程序是为了实际的问题而存在从本质上而言,程序是解决问题的步骤描述。

问题:

怎样把大象放冰箱?

(1)打开冰箱门 (2)把大象放进去 (3)关上冰箱门

Elephan* e = getElep();

int f = open(“fridge”);

put(f, e);

close(f

  1. 首先理解实际问题

(1) 确认问题类型。

如:数值计算,求最小值个数。

(2) 确认求解的步骤。

如:打开文件,读数据,关闭文件,计算和。

我们看一个求前n项和的程序:

#include <stdio.h>

#include <malloc.h>

long sum1(int n)

{

long ret = 0;

int* array = (int*)malloc(n * sizeof(int));

int i = 0;

for(i=0; i<n; i++)

{

array[i] = i + 1;

}

for(i=0; i<n; i++)

{

ret += array[i];

}

free(array);

return ret;

}

long sum2(int n)

{

long ret = 0;

int i = 0;

for(i=1; i<=n; i++)

{

ret += i;

}

return ret;

}

long sum3(int n)

{

long ret = 0;

if( n > 0 )

{

ret = (1 + n) * n / 2;

}

return ret;

}

int main()

{

printf("%d\n", sum1(100));   //5050

printf("%d\n", sum2(100));   //5050

printf("%d\n", sum3(100));   //5050

return 0;

}

  1. 程序评鉴

(1) 用尽量少的内存空间解决问题

(2) 用尽量少的步骤解决

优秀的开发者需要追求代码的高“性价比”!

小结:

(1) 程序是为了具体问题而存的。

(2) 程序需要围绕问题的解决进行。

(3) 同一个问题可以有多种解决。

原文地址:https://www.cnblogs.com/free-1122/p/9884909.html

时间: 2024-08-01 11:35:29

数据-第1课-进阶高手的大门的相关文章

第1课 - 进阶高手的大门

理解程序的本质 1.为什么会有各种各样的程序存在,程序的本质是什么? (1)程序是为了解决实际问题而存在的,从本质上而言,程序是解决实际问题的步骤描述 (2)一小步的进阶:理解实际问题 ①确认问题类型:如:数值计算,求最小值个数 ②确认求解步骤:如:打开文件,读数据,关闭文件,计算和 2.如何判断问题求解步骤的好坏 [实例分析] 1 /* 2 问题:给定一个整数 n,编程求解 1 + 2 + 3 + ... + n 的和. 3 4 QQ交流群: 199546072 5 6 D.T.Softwar

第一课——进阶高手的大门

理解程序的本质程序是为了实际的问题而存在从本质上而言,程序是解决问题的步骤描述 一小步的进阶首先理解实际问题! 确认问题类型– 如:数值计算,求最小值个数 确认求解的步骤– 如:打开文件,读数据,关闭文件,计算和问题:如何判断求解步骤的好坏 通过下面的例子说明: #include <stdio.h> #include <malloc.h> long sum1(int n) { long ret = 0; int* array = (int*)malloc(n * sizeof(in

大数据学习之Linux进阶02

大数据学习之Linux进阶 1-> 配置IP 1)修改配置文件 vi /sysconfig/network-scripts/ifcfg-eno16777736 2)注释掉dhcp #BOOTPROTO="dhcp" 3)添加配置(windows->ipconfig -all) IPADDR=192.168.50.179 NETMASK=225.255.255.0 GATEWAY=192.168.50.1 DNS1=219.141.136.10 4)重启网卡 service

数据分析师教程_从小白到“数据分析师”大神进阶之路

课程学习地址:http://www.xuetuwuyou.com/course/231课程出自学途无忧网:http://www.xuetuwuyou.com 课程特色--成长六部曲小白脱白篇->数据分析篇->数据挖掘篇-> Python加薪冲刺篇->大数据分析师进阶篇-->精英项目实战篇 一.课程目标数据分析师秉承着总结凝练最先进的商业数据分析实践为使命,明晰各类数据分析从业者的知识体系为职责.本课程就是为了这个目标而量身订做的.旨在加强全球范围内正规化.科学化.专业化的大数

数据-第2课-数据的艺术

第2课-数据的艺术 数据结构起源 (1) 计算机从解决数值计算问题到解决生活中的问题. (2) 现实生活中的问题涉及不同个体间的复杂联系. (3) 需要在计算机程序中描述生活中个体间的. 数据结构主要研究非数值计算程序问题中的操作对象以及它们之间的关系. 关键概念 (1)数据 – 程序的操作对象,用于描述客观事物. 数据的特点: l 可以输入到计算机. l 可以被计算机程序处理. 数据是一个抽象的概念,将其进行分类后得到程序设计语言中的类型.如:int,float,char等等. (2)数据元素

数据-第5课-线性表的本质

第5课-线性表的本质 线性表的定义 (1) 线性表(List)是零个或多个数据元素的集合. (2) 线性表中的数据元素之间是有顺序的. (3) 线性表中的数据元素个数是有限的. (4) 线性表中的数据元素的类型必须相同. 定义: 线性表是具有相同类型的 n( ≥ 0)个数据元素的有限序列 (a1, a2,...,an)  ai表示项,n表示长度. 线性表的性质 (1) a0为线性表的第一个元素,只有一个后继. (2) an为线性表的最后一个元素,只有一个前驱. (3) 除a0和an外的其它元素a

数据-第3课-程序的灵魂-算法

第3课-程序的灵魂-算法 数据结构与算法 (1) 数据结构只是静态的描述了数据元素之间的关系. (2) 高效的程序需要在数据结构的基础上设计和选择算法. 高效的程序:恰当的数据结构 + 合适的算法. 算法的定义 (1) 算法是特定问题求解步骤的描述. (2) 在计算机中表现为指令的有限序列. 算法是独立存在的一种解决问题的方法和思想. 对于算法而言,语言并不重要,重要的是思想. 算法的特性 (1)输入 算法具有0个或多个. (2)输出 算法至少有1个或多个输出. (3)有穷性 算法在有限的步骤之

数据-第18课-栈与递归

第18课-栈与递归 C语言中的疑惑 讨论中…… 小A:C语言中常说“局部变量在栈上分配空间”,那么这个地方的“栈”和我们之前学习的栈数据结构有关系吗? 小B:我觉得应该没关系吧 :我觉得应该没关系吧,只是名称碰巧一致而已吧?! 1. 函数调用时的栈 (1)程序中的“函数调用栈”是栈数据结构的一种应用. (2)函数调用栈一般是从高地址向低地址增长的. l  栈底为内存的高地址处. l  栈顶为内存的低地址处. (3)函数调用栈中存储的数据为活动记录 2. 活动记录 活动记录是函数调用时一系列相关信

数据--第20课-递归的应用实战二

第20课-递归的应用实战二 1. 递归与回溯 (1)递归在程序设计中也常用于需要回溯算法的场合. (2)回溯算法的基本思想. ① 从问题的某一种状态出发,搜索可以到达的所有状态. ② 当某个状态到达后,可向前回退,并继续搜索其它可达状态 ,并继续搜索其它可达状态. ③ 当所有状态都到达后,回溯算法结束. (3)程序设计中可利用函数的活动对象保存回溯算法的状态数据,因此可以利用递归完成回溯算法 2. 八皇后问题 在一个8×8国际象棋盘上,有8个皇后,每个皇后占一格:要求皇后间不会出现相互“攻击”的