- 7
- 0
- 约1.17万字
- 约 67页
- 2017-09-25 发布于北京
- 举报
2005-11 第2-3讲 数据组织与排序问题 数组的概念、定义和初始化 冒泡排序的算法 二维数组 字符数组与字符串 结构与结构数组 3.1 一维数组 数组 含有相同数据类型的元素的系列集合。 是同类型的组合。 某公司的职工名单列表 某班学生的考试成绩 客户及其电话号码列表 …… 例如: 要用数组变量x表示5个数字的集合(35,40,20,57,19) int x[5]; x[0] = 35; x[1] = 40; x[2] = 20; x[3] = 57; x[4] = 19; 一维数组的声明 一般形式 数据类型 数组名[数组的长度]; float score[50]; char name[20]; int num[10]; 数组名的命名规则同变量名; 数组的长度(大小)必须是一个整型数字常量或符号常量,用以表示该数组中元素的个数。 C语言中不允许对数组的大小作动态定义。 int n; scanf(%d, n); int a[n]; ×错! 数组元素的引用 数组名[数组元素的下标值] 数组的元素是由下标来区分的,下标的值可以是C的任何整型表达式的值(包括整型变量及整型常量)。 在C语言中,数组元素的下标总是从0开始的。 使用数组时,只能分别对数组的各个元素进行操作。 使用数组元素时,其下标值不得超过声明时所规定的上下界,否则运行时将出现数组越界错误。 例3-1, 数组类型的使用,将数组A的内容倒序传给数组B 一维数组的初始化 数组初始化可以在如下两个阶段进行: 编译时 运行时 编译时初始化——直接在声明数组时初始化 数组元素全部初始化 int a[3] = {1, 2, 3}; float fa[5] = {0.0}; //使数组元素全部为0 int a[3] = {1, 2, 3, 4}; ×错 在声明数组时,若对数组元素全部初始化,则数组的大小可以省略 int a[ ] = {1, 2, 3}; 可以部分初始化数组元素,即初始化的数量可以小于声明的大小。这时,剩余的元素被初始化为0 或空。 float fa[5] = {1.0, 2.0, 3.0}; char city[5] = { B}; 运行时初始化 在运行时显式地初始化数组,通常用于大数组的初始化。 也可以使用诸如scanf 之类的函数来初始化数组。 数组的存储 数组元素在内存中是顺序、连续存储的。 数组名是数组元素的内存首地址。 一维数组是按照下标的顺序连续存储的。 数组的下标是该元素到数组开始的偏移量。 例如: int A[4]; 例3-2,把有5个元素的数组用冒泡排序法按升序排列 冒泡排序法(bubble sort)—— 使较小的值像空气泡一样逐渐“上浮”到数组的顶部,而较大的值逐渐“下沉”到数组的底部。 以5个数(2,5,4,3,1)的排序过程为例 例3-3,标准偏差的计算。 在统计学中,标准偏差用来计算数据与其平均数的偏差。计算n 项标准偏差的公式如下: 其中 且 计算标准偏差的算法: 读取n 项数据(xi) 计算这些项的和与平均数 计算方差 计算标准偏差 例3-4,利用牛顿(Newton)迭代法求非线性方程 在[1,2]内的解。 牛顿迭代法的核心思想 首先寻找一个合理的初始解 x0,然后用曲线 y=f (x)在 x0处的切线与 x轴的交点 x1替代 x0,从而形成一个迭代策略。 牛顿迭代格式的推导 假设y=f (x)是某定义域内的连续可微的实函数,x* 为f (x)的零点,x0为x*附近的已知点。 过x0作曲线y=f (x)的切线,它与x轴的交点为x1,那么当x0充分接近x*时,从图中看出, x1比x0更接近x*。 如果x1不满足精度要求,可以用x1替代x0 ,重复上面的过程,从而能够形成一个算法。 利用高等数学中关于导数的几何解释,f (x)在x0处的导数f (x0)就是曲线 y =f (x)在x0处的切线的斜率,利用点斜式方程: 算法 说明: a,b分别为区间的左右端点,ε为允许误差; x0为初始解; y0 , z0分别为 x0处的函数值和导数值; x1为以x0为初值经一次迭代后得到的改进值。 1)if( f(a) 0 ) x0 = a; else x0 = b; 2) y0 = f(x0); z0 = f(x0); 3) x1=x0-y0/z0; y1 = f(x1); 4) if( |x1-x0| ε ) goto 6) 5) x0=x1; y0=y1; z0= f(x0); g
您可能关注的文档
- 全面预算管理五大要领(汤谷良).ppt
- 全微分方程.ppt
- 如何写好基金申请书(侯凡凡院士).ppt
- 如何写好学校新闻(2009.05.24).ppt
- 上善若水,水之哲学.ppt
- 数据结构 线性表.ppt
- 数据结构 栈和队列.ppt
- 数据库 第4章 表操作.ppt
- 数据库 第六章 关系数据理论.ppt
- 数据库二级01-02(第一部分理论知识).ppt
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
原创力文档

文档评论(0)