数据结构的起源和研究内容

1,本文论述数据结构的起源和数据结构研究内容;

2,高手往往能够看到初学者看不到的问题;

3,为什么有程序存在(可以写入论文中):

1,程序是为了解决实际问题而存在的;

2,从本质上讲,程序是解决问题的步骤描述(有了这些步骤,计算机照做就可以了);

4,理解实际问题:

1,确认问题类型:

1,如:数值计算,求最小值个数,排序等;

2,客户想要什么?

2,确认求解步骤:

1,打开文件,读数据,关闭文件,计算和;

5,如何判断问题求解步骤好坏?

1,时间少、步骤少、内存少;

  2,判断求解步骤的好坏:

 1 #include <iostream>
 2
 3 using namespace std;
 4
 5 long sum1(int n)
 6 {
 7     long ret = 0;
 8     int* array = new int[n];
 9
10     for(int i=0; i<n; i++)
11     {
12         array[i] = i + 1;
13     }
14
15     for(int i=0; i<n; i++)
16     {
17         ret += array[i];
18     }
19
20     delete[] array;
21
22     return ret;
23 }
24
25 long sum2(int n)
26 {
27     long ret = 0;
28
29     for(int i=1; i<=n; i++)
30     {
31         ret += i;
32     }
33
34     return ret;
35 }
36
37 long sum3(int n)
38 {
39     long ret = 0;
40
41     if( n > 0 )
42     {
43         ret = (1 + n) * n / 2;
44     }
45
46     return ret;
47 }
48
49 int main()
50 {
51     cout << "sum1(100) = " << sum1(100) << endl;
52     cout << "sum2(100) = " << sum2(100) << endl;
53     cout << "sum3(100) = " << sum3(100) << endl;
54
55     return 0;
56 }

6,程序评鉴初探:

  1,用尽量少的时间,决绝问题;

  2,用尽量少的步骤,解决问题;

  3,用尽量少的内存,解决问题;

7,《数据结构》课程是入门级,《计算机程序设计艺术》是大神级的;

9,数据结构课程研究范围:

1,非数值计算类型的程序问题;

1,不研究科学问题;

2,数据间的组织和操作方式;

3,数据的逻辑结构和存储结构;

10,经典公式:

1,程序 = 数据结构 + 算法;(面向过程的设计思想时候成立)

2,目前这门课这个公式依旧成立;

11,语言重要,思想也重要;

数据结构和算法中语言不重要,重要的是思想;

12,小结:

  1,程序是为了解决实际问题而存在的;

  2,针对同一个问题可以有多种解决方案;

  3,专业程序员应该尽量追求高质量的程序;

  4,数据结构课程主要研究非数值计算问题;

原文地址:https://www.cnblogs.com/dishengAndziyu/p/10920437.html

时间: 2024-11-02 23:54:11

数据结构的起源和研究内容的相关文章

关于论文研究内容的选择

2016-11-23 算法与数学之美1.关于论文研究内容的选择(1)博士论文研究是针对特定领域的未解决问题的研究,通过研究提出和验证解决这个问题的新理论新方法新模式.论文的创新性贡献一定是解决别人还没有解决.或者在某些方面解决得不好的问题. (2)因此,学生在文献综述分析的基础上必须首先回答:在这个领域,存在哪些没有解决的关键问题.这些问题目前的主要解决思路是什么.有什么人利用什么方法与技术正在解决这些问题.已经达到或近期预计能够达到的解决程度怎样.它们在解决这些问题时还存在什么重大缺陷.学生应

研究内容与成果

研究内容表述 我们主要研究不可压 Navier-Stokes 方程组 $$\bee\label{NSE} \sedd{\ba{ll} \p_t\bf{u}+(\bf{u}\cdot\n)\bf{u}-\lap\bf{u}+\n \pi=\bf{0},\\ \n\cdot\bf{u}=0,\\ \bf{u}(0)=\bf{u}_0, \ea} \eee$$ 其中 $\bf{u}$ 是速度, $\pi$ 是压力, $\bf{u}_0$ 是初始速度.  该方程是千禧年大奖难题之一. 百度百科里如此介绍

生信研究内容

目前生物信息学 的研究情况来看,国际上公认的生物信息学的研究内容,大致包括以下几个方面: 1. 生物信息的收集.存储.管理与提供.包括建立国际基本生物信息库和生物 信息传输的国际联网系统:建立生物信息数据质量的评估与检测系统:生物信息的在线服务:生物信息可视化和专家系统. 2. 基因组序列信息的提取和分析.包括基因的发现与鉴定,如利用国际EST  数据库 (dbEST) 和各自实验室测定的相应数据,经过大规模 并行计算发现新基因和新SNPs以及各种功能位点:基因组中非编码区的信息结构分析,提出理

数据结构与算法系列研究四——数组和广义表

稀疏矩阵的十字链表实现和转置 一.数组和广义表的定义 数组的定义1:一个 N 维数组是受 N 组线性关系约束的线性表.           二维数组的逻辑结构可形式地描述为:           2_ARRAY(D,R)              其中 D={aij} | i=0,1,...,b1-1; j=0,1,...,b2-1;aij∈D0}              R={Row,Col}              Row={<aij,ai,j+1>|0<=i<=b1-1;

数据结构与算法系列研究三——字符串

字符串的研究和KMP算法分析和实现 一.串的定义 串是计算机非数值处理的基本对象.串是一种特殊的线性表,它的每个结点仅由一个字符组成,并且单个元素是无意义的.    1.串(string):是由0个或多个字符组成的有限序列,记作:          S="a1a2...an"  (n>=0)          其中:S是串名,两个双引号括起来的字符序列为串的值.双引号不属于串.                   ai(1<=i<=n)为字母.数字或其它符号.    

数据结构与算法系列研究五——树、二叉树、三叉树、平衡排序二叉树AVL

树.二叉树.三叉树.平衡排序二叉树AVL 一.树的定义 树是计算机算法最重要的非线性结构.树中每个数据元素至多有一个直接前驱,但可以有多个直接后继.树是一种以分支关系定义的层次结构.    a.树是n(≥0)结点组成的有限集合.{N.沃恩}     (树是n(n≥1)个结点组成的有限集合.{D.E.Knuth})      在任意一棵非空树中:        ⑴有且仅有一个没有前驱的结点----根(root).        ⑵当n>1时,其余结点有且仅有一个直接前驱.         ⑶所有结

数据结构与算法系列研究七——图、prim算法、dijkstra算法

图.prim算法.dijkstra算法 1. 图的定义 图(Graph)可以简单表示为G=<V, E>,其中V称为顶点(vertex)集合,E称为边(edge)集合.图论中的图(graph)表示的是顶点之间的邻接关系. (1) 无向图(undirect graph)      E中的每条边不带方向,称为无向图.(2) 有向图(direct graph)      E中的每条边具有方向,称为有向图.(3) 混合图       E中的一些边不带方向, 另一些边带有方向.(4) 图的阶      指

数据结构与算法系列研究八——链地址法建哈希表

链地址法建哈希表 一.实验内容    建立n元关键字哈希表,用链地址法解决冲突,输出建立的哈希表.(按链表的顺序),输入任意元素实现查找查找结果分成功和失败,要求查找时可以反复输入关键字查找,直至输入停止标识符时程序结束. 二.输入与输出  输入:可以用随机数法产生n元关键字,然后,产生哈希表,输入要查找的关键字判断是否存在.  输出:输出哈希表,输出查找的结果.三.关键数据结构和核心算法  关键数据结构:     链式哈希表由一组数组作为"头指针",每个数组之后都有一个链表,该链表中

数据结构与算法系列研究九——排序算法的一些探讨

四种排序 一.实验内容     输入20个整数,分别用希尔排序.快速排序.堆排序和归并排序实现由小到大排序并输出排序结果.二.关键数据结构与核心算法   关键数据结构:由于是排序为了简单起见,选用线性表中的数组作为存储结构.   核心算法:   1.希尔排序    希尔排序的核心还是直接插入法,但是插入的位置有所讲究.要把数组分为许多段,每一段的长度除了最后的有可能不同之外,其他的都相同.该段的长度即为增量,在最后一次必须为一,此时程序变成了直接插入.每次进行隔段插入,不断地调整是的数组变得隔段