Chapter 3 陣列(Arrays).

Slides:



Advertisements
Similar presentations
简单迭代法的概念与结论 简单迭代法又称逐次迭代法,基本思想是构造不动点 方程,以求得近似根。即由方程 f(x)=0 变换为 x=  (x), 然后建立迭代格式, 返回下一页 则称迭代格式 收敛, 否则称为发散 上一页.
Advertisements

2.5 微分及其应用. 三、可微的条件 一、问题的提出 二、微分的定义 六、微分的形式不变性 四、微分的几何意义 五、微分的求法 八、小结 七、微分在近似计算中的应用.
仁德醫護管理專科學校 職業安全衛生科  0  順天國中菸害防制 主講人:仁德醫專職業安全衛生科 王義文.
會計學 Chapter 1 基本概念 1-2 基本概念 第一節 單式簿記 第二節 會計學的定義與功用 第三節 會計學術與會計人員 第四節 企業組織 第五節 會計學基本第五節 會計學基本慣例 第六節 會計方程式 第七節 財務報表.
Chapter 5 教育發展與職業選擇. 1. 認識高職學生的生涯進路。 2. 了解個人特質與職業屬性之 間的關係。 3. 認識打工安全與勞動權益。
大中衔接 培育英才 人大附中开设大学先修课程简介 2014 年 12 月. 人大附中的课程理念  要创造适合每个学生发展的教育。通过创设丰富的、 可供选择的课程,充分满足学生个性化、多样化发展 的需求,为每个学生搭建起放飞人生梦想的舞台。
项目6 通用堆栈.
天津1班面试专项练习1 综合分析现象类 主讲:凌宇 时间:5月21日 19:00—22:00.
Java软件设计基础 课后作业.
专利技术交底书的撰写方法 ——公司知识产权讲座
小 王 子 組別:第五組 班級:財金二甲 組員:A 林安潔 A 陳思羽 A 許雅涵
我的家乡 南通 ….
45天备考指南 2013年下半年国考资格证笔试系列讲座(2) 华图教师事业部 石杨平.
11-1 保險業之定義 11-2 保險業之設立 11-3 保險業之組織 11-4 保險業之營業範圍
C语言程序设计 李伟光.
教學經驗分享 吳毅成 國立交通大學資訊工程系 2012年4月.
9-1 火災保險 9-2 海上保險 9-3 陸空保險 9-4 責任保險 9-5 保證保險 9-6 其他財產保險
2014政法干警备考平台 2014政法干警考试群⑨ 中公教育政法干警考试 ——微博 中公教育政法干警考试
導覽解說與環境教育 CHAPTER 3 解說員.
財務報表的內容 四種報表格式 財務報表的補充說明 會計師簽證的重要性 合併報表 財務報表分析 Chapter 2 財務報表的內容.
老師 製作 法律與生活.
跳楼价 亏本大甩卖 清仓处理 买一送一 5折酬宾. 跳楼价 亏本大甩卖 清仓处理 买一送一 5折酬宾.
资料分析 如何攻破最后瓶颈 主讲老师:姚 剑 4月6日20:00 YY频道:
清仓处理 跳楼价 满200返160 5折酬宾.
第十七章休閒農業之經營策略與成功之道 17 Chapter.
Chapter 2 勞工安全衛生法.
四种命题 班级:C274 指导教师:钟志勤 任课教师:颜小娟.
五、学习方法及应考对策 (一)学习方法 1.保证复习时间,吃透教材:上课之前应该对课程相关内容进行预习,把不理解的问题记录下来,带着问题听课。考试之前务必把课本看3遍以上,第一遍一定要精读,最好能做笔记,边读边记,不要快,要记牢。第二、三遍可以查缺补漏型的看,通过做题目看书,加深课本印象。 2.加强概念、理论性内容的重复记忆:概念、理论性内容一般比较抽象,所以在理解的基础上一定要重复记忆,在接受辅导之后,再加以重点记忆,以便及时巩固所学内容,切忌走马观花似的复习,既浪费时间,效果也不好。
第五章 定积分及其应用.
09学前教育班 魏文珍 自我介绍.
風險分析與財務結構 瞭解風險的定義與種類 衡量企業風險與財務風險 影響企業風險的因素 影響財務風險的因素 以現金流量衡量企業長期的財務狀況
國際行銷管理 林 建 煌 著.
第一節 知覺 第二節 認知 第三節 學習 第四節 創造力
CHAPTER 2 綜合所得稅之架構.
100學年度土木工程系專題研究成果展 題目: 指導老師:3223 專題學生:2132、2313 前言: 成果: 圖1 圖2 方法與流程:
编译原理与技术 类型检查 2018/11/21 《编译原理与技术》-类型检查.
JAVA程序设计 第5章 深入理解JAVA语言----补充.
親愛的老師您好 感謝您選用本書作為授課教材,博碩文化準備本書精選簡報檔,特別摘錄重點提供給您授課專用。 說明: 博碩文化:
貨幣需求與貨幣市場的均衡.
切換Dev c++顯示語言 工具->環境選項(V)->介面->language (Chinese TW)
排列组合 1. 两个基本原理 分类加法计数原理 分步乘法计数原理.
导数的应用 ——函数的单调性与极值.
Java變數 2014/6/24.
第三节 常见天气系统.
老師 製作 休閒農場.
商業行為成立的要件 動動腦 Q 請試著判斷下列何者為商業行為? 請試著判斷下列何者為商業行為?.
心理學—日常生活中的應用 人際溝通.
新课标人教版课件系列 《高中数学》 必修5.
<编程达人入门课程> 本节内容 为什么要使用变量? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
第二章 Java语法基础.
第二章 类型、对象、运算符和表达式.
山清水秀的林芝 yy 曾元一
陣列的位址計算.
Review 1~3.
Java软件设计基础 课后作业.
第二章 Java基本语法 讲师:复凡.
財務預測 財務預測的用途 法令相關規定 預測的基本認知 預測的方法 製作預測性報表 財務報表分析 Chapter 16 財務預測.
本节内容 指针类型.
方格紙上畫正方形.
變數、資料型態、運算子.
第2章 Java语言基础.
106年免試入學第一次模擬 選填重要日程表說明 1.106年1月10日中午12時~106年1月16日中午12時完成第一次模擬
自慢 社長的成長學習筆記 何飛鵬.
基本資料型態 變數與常數 運算子 基本的資料處理 授課:ANT 日期:2014/03/03.
PPT注意事项: 当前PPT课件文件必须和提供的源代码文件夹“代码”在同一目录中即不要移动文件夹“代码”的默认位置。
高中数学 选修2-2  最大值与最小值 江宁高中 申广超.
第2章 陣列結構 資料結構設計與C++程式應用
團體工作的倫理議題 CHAPTER 12. 團體工作的倫理議題 CHAPTER 12 團體工作的倫理議題 1.如果我有資格執行個別治療,那麼我也可以執行團體治療。 2.仔細而審慎地篩選團體成員,較符合專業倫理要求。 3.在團體治療開始前,讓成員能先有準備以便從團體中獲得最大利益,是非常重要的。
Chapter1 大師的視界,見證歷史的腳步
本节内容 指针类型 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
Presentation transcript:

Chapter 3 陣列(Arrays)

陣列 int ko[ ]=new int[5]; int ko [ ] [ ] = new int[80] [50 ] ; 陣列(Array)可分成一維陣列、二維陣列及多維陣列(三維以上的陣列)。 Java int ko[ ]=new int[5]; int ko [ ] [ ] = new int[80] [50 ] ; int ko[ ] [ ] [ ] = new int[80] [50 ] [50 ] ;

資料型態 資料型態名稱 佔記憶體大小(位元組) byte 1 short 2 int 4 long 8 char float double

一維陣列 一維陣列的宣告法: int ko[ ]=new int[5]; int [ ]ko=new int[5];

一維陣列位址的配置 若陣列 ko[n],假設每一個變數佔了 d 個位元組的空間: 變數 ko[0] ko[1] ko[2] ‧‧‧ko[n-1] 位址 m m+d m+2*d‧‧‧m+(n-1)*d d值代表資料型態所佔記憶體空間的大小,則: Loc(ko[n-1])=m+(n-1)*d..(公式3-1) 其中 m=Loc(ko[0]) ,d 為資料型態所佔記憶體的大小,n-1 代表 ko[0] 與 ko[n-1] 間隔。 Loc 代表 Location 記憶體位置。 例題 ko3_1使用一維陣列,計算小學生成績

一維陣列位址的配置 P.74例題1: 假設在 Java 語言中有一陣列 A[ ] 儲存了 float 的資料,若 A[100] 的位址是 4413,則 A[200] 的位址為若干?

一維陣列位址的配置 解答: 已知 Loc(A[100])=4413=m+(n-1)*d=m+100*d,根據公式 3-1 Loc(ko[n-1])=m+(n-1)*d, 得知 Loc(ko[0])=m,d=4, Loc(A[100])=4413=m+100*4,得 m=4013 Loc(A[200])=m+(n-1)*d =4013+200*4 =4813

一維陣列位址的配置 例題 ko3_2使用一維陣列,將一組字串之大寫變小寫,小寫變大寫 P.74例題 2 例題 ko3_2使用一維陣列,將一組字串之大寫變小寫,小寫變大寫 例題 ko3_3使用一維陣列,將一組數字,依大小順序排列

二維陣列 二維陣列宣告方式: int ko[ ][ ]=new int[5][3]; int [ ][ ]ko=new int[5][3]; 二維陣列包含列(Row)及行(Column): (1,1) (1,2) (1,3) (1,4) (2,1) (2,2) (2,3) (2,4) (3,1) (3,2) (3,3) (3,4)

二維陣列 例題 ko3_4 使用二維陣列,求陣列中最大值及最小值 例題 ko3_5 使用二維陣列,列出二維陣列,並求各列數字的和 先介紹二個陣列乘積之算法

二維陣列位址的配置 二維陣列位置的配置可分為 以列為主陣列位置的配置 以行為主陣列位置的配置 通常都是以列為主陣列位置的配置

以列為主陣列位址配置 假設每一個變數佔了2個位元組的空間,y行內有δ個元素

以列為主陣列位址配置 若 Loc(A[0][0])=m,而且以列為主陣列位置的配置方式,則A[x][y]記憶體位置的公式如下: Loc(A[x][y])=m+d(xδ+y)…………(公式3-2) 其中δ代表 y 行內有δ個元素,d 代表每一個變數佔了 d 個位元組的空間。

P.81例:有一個二維陣列A,假設A[1][1]與A[3][3]的位址分別為644與676,求A[4][4]的位址為若干? Loc(A[1][1])=644=m+d(δ+1)……………………….(1) Loc(A[3][3])=676=m+d(3 δ+3)……………………..(2) (1)x3-(2)得 2m=1256 m=628……………………………..(3) d(δ+1)=16……………………….(4) 將(3)(4)代入 Loc(A[4][4])=m+d(4 δ+4) =m+4d(δ+1) =628+4x16 =692

以行為主陣列位址配置 假設每一個變數佔了2個位元組的空間,x列內有δ個元素

以行為主陣列位址配置 若Loc(A[0][0])=m,而且以行為主陣列位址的配置方式,則 A[x][y]記憶體位址的公式如下: Loc(A[x][y])=m+d(yδ+x)………......(公式3-3) 其中δ代表x列內有δ個元素,d代表每一個變數佔了d個位元組的空間。

P.83例:有一個以行為主的二維陣列 A[x][y],A[3][2]的位址是 1111,A[2][3]的位址為 1116。若每一個元素佔了1個位元組,求A[1][4]的位址為若 干? 已知d=1根據公式3-3 Loc(A[x][y])=m+d(yδ+x)得知: Loc(A[3][2])=1111=m+(2‧δ+3)…………………..(1) Loc(A[2][3])=1116=m+(3‧δ+2)…………………..(2) (2)-(1)得 5=δ-1,求得δ=6……………………….(3) (3)代入(1)求得 m=1096 Loc(A[1][4])=m+d(yδ+x) =1096(4‧6+1) =1121

多維陣列位址的配置 以列為主陣列位址的配置 加設有一三維陣列 A[z][y][x],A[0][0][0]的位址為m,每一個元素佔了d個位元組,則 A[a][b][c]的位址為: Loc(A[a][b][c])=m+d(ayx+bx+c)……(公式3-4)

P.85例:設有一三維陣列A[2][3][4]中,陣列元素A[1][1][1]在主記憶體中之位址為3000,且一個元素佔一個位元組,以列為主排列時,陣列元素A[2][1][3]之位址為何? 已知三維陣列A[2][3][4](z=2,y=3,x=4),每一個元素佔一個位元組,d=1。根據公式 3-4 知 Loc(A[1][1][1])=m+d(ayx+bx+c)=m+1(1‧3‧4+1‧4+1)=m+17=3000,得m=2983 Loc(A[2][1][3])=m+d(ayx+bx+c) =2983+1(2‧3‧4+1‧4+3) =2983+24+4+3 =3041

多維陣列位址的配置 以行為主陣列位址的配置 假設有一三維陣列A[z][y][x],A[0][0][0]的位址為m,每一個元素佔了d個位元組,則A[a][b][c]的位址為: Loc(A[a][b][c])=m+d(czy+bz+a)……(公式3-5)

P.85例:設有一三維陣列A[2][3][4]中,陣列元素A[1][1][1]在主記憶體中之位址為3000,且一個元素佔一個位元組,以行為主排列時,陣列元素A[2][1][3]之位址為何? 已知三維陣列A[2][3][4](z=2,y=3,z=4),每一個元素佔一個位元組,d=1。 根據公式3-5知Loc(A[1][1][1])=m+d(czy+bz+a)=m+1(1‧2‧3+1‧2+1)=m+9=3000,得 m=2991 Loc(A[2][1][3])=m+d[czy+bz+a] =2991+1(3‧2‧3+1‧2+2) =2991+18+2+2 =3013

特殊矩陣 稀疏矩陣 所謂稀疏矩陣是指矩陣中的元素大多數為0。擁有多少個零元素才稱得上「稀疏矩陣」,並沒有明確的定義。

以二維陣列來儲存此稀疏陣列,地以列用來儲存稀疏矩陣的列數、行數以及非零元素數,第二列一後用來儲存稀疏矩陣的非零元素所在的位址及其值,此法稱為行列索引表示法

依據圖3-6,總共非零元素有8個,存放稀疏矩陣的記憶體空間=3*(8+1)=27 因此,答案應為(C)3(k+1) P.90例:一個mxn的整數矩陣(Matrix),其中有k個非零的值。如果用陣列儲存這個Sparse Matrix的k值。需要多少個記憶體?(A)k(B)2k+1(C)3(k+1)(D)4k 依據圖3-6,總共非零元素有8個,存放稀疏矩陣的記憶體空間=3*(8+1)=27 因此,答案應為(C)3(k+1)

下三角形矩陣 正方形矩陣A[x][y]其對角線以上的元素均為0。x≦y,A[x][y]=0

下三角形矩陣位置配置 以列為主 Loc (A[x][y])= Loc (A[0][0])+(1+x)x/2+y. . .(公式3-8) 例題 ko3_7 (下三角型以列為主的位址配置,二維陣列轉換成一維陣列)

下三角形矩陣以行為主 Loc (A[x][y])= Loc (A[0][0])+n(y-1)-y(y-1)/2+x (公式3-9) 例題 ko3_8 (下三角型以行為主的位址配置,二維陣列轉換成一維陣列)

上三角形矩陣 x≧y,A[x][y]=0

上三角形矩陣以列為主 Loc (A[x][y])= Loc (A[0][0])+n(x-1)-x(x-1)/2+y (公式3-10) 例題 ko3_9 (以上三角型矩陣以列為主的位址配置,二維陣列轉換成一維陣列)

上三角形矩陣以行為主 Loc (A[x][y])= Loc (A[0][0])+y(y-1)/2+x (公式3-11) 例題 ko3_10 (以上三角型以行為主的位址配置,二維陣列轉換成一維陣列)

多項式陣列 使用n+2長度的陣列a儲存多項式f(x)。 f(x)=7x3+4x+13 。 A[5]={3,7,0,4,13} 。

多項式陣列 以a[2p+1]儲存多項式f(x)。 f(x)=7x3+4x+13 。 A[7]={3,3,7,1,4,0,13} 。

類別 Java語言的類別與陣列類似,可將一些資料組在一起。但是資料陣列的每一元素的資料型態必須一致;類別的每一元素的資料型態不必一致。 因此,陣列記憶體的空間也較類別記憶體的空間容易掌握。 例題ko3_11使用類別宣告各種資料型態