数据结构 - CH1 绪论

Similar documents
C 1

Microsoft PowerPoint - ds-1.ppt [兼容模式]

新・解きながら学ぶJava

Microsoft Word - 澎湖田調報告_璉謙組.doc

新版 明解C++入門編

untitled

C/C++语言 - C/C++数据

ebook39-6

CC213

ebook39-5

FY.DOC

untitled

鋼結構在綠建築發展趨勢中之綜合評價

内 容 提 要 指 针 持 久 动 态 内 存 分 配 字 符 串 ( 字 符 数 组 ) 2

Microsoft Word - 第3章.doc

C C


C 1 # include <stdio.h> 2 int main ( void ) { 4 int cases, i; 5 long long a, b; 6 scanf ("%d", & cases ); 7 for (i = 0;i < cases ;i ++) 8 { 9

C/C++ 语言 - 循环


C/C++ - 字符输入输出和字符确认

Microsoft Word - 01.DOC

書本介紹



untitled

第 二 章 古 代 慢 慢 睁 开 眼 睛, 我 的 面 前 出 现 一 个 女 孩 子, 大 约 十 六 七 岁, 身 穿 淡 绿 色 布 裙, 头 上 两 个 小 圆 髻 特 别 娇 俏 可 爱 医 院 什 么 时 候 出 现 这 么 一 个 可 爱 的 古 装 护 士 啊! 这 医 院 真 有

Microsoft Word 養生與保健_中山大學_講義


萬里社區老人健康照護手冊

Microsoft Word - 強制汽車責任保險承保及理賠作業處理辦法 doc

Microsoft Word - 06.Understanding of Pregnancy and Birth.doc

(➂)11. 炎 炎 夏 日, 即 使 下 起 滂 沱 大 雨, 都 消 除 不 了 令 人 心 煩 的 暑 氣 這 句 話 主 要 想 表 達 什 麼? ➀ 夏 日 裡 經 常 下 著 滂 沱 大 雨, 令 人 心 煩 ➁ 下 著 滂 沱 大 雨 的 日 子, 可 以 消 除 暑 氣 ➂ 夏 日

範本檔

附 件 一 : 办 理 集 中 式 银 期 转 账 业 务 网 点 名 单 序 号 地 区 网 点 名 称 地 址 联 系 人 电 话 23 工 商 银 行 安 徽 省 铜 陵 百 大 支 行 铜 陵 市 长 江 东 路 50 号 鲁 桂 珍 工 商 银 行 安 徽

2. 二 年 級 吳 毓 秀 老 師 : 感 謝 午 餐 公 司 平 時 均 能 準 時 送 餐, 但 希 望 能 不 要 使 用 加 工 品, 且 學 生 反 映 希 望 能 多 加 蛋 品 的 食 物 3. 三 年 級 柯 阿 青 老 師 : 雞 肉 有 血 水 味, 請 午 餐 公 司 能 調

高雄市立五福國民中學九十四學年度第一學期第三次段考二年級本國語文學習領域試題卷

台北老爺校外實地參訪結案報告


糖尿病食譜



,,,,,,, (,, ),,,,,,,,,,,,,,, ,,, 4 11,, ( ),,,, ( ), :, ( ),,, 1995, 66 ; ( ),, 1996, , 3-4,,


2002 4,,, 1941,,,,,,,,,,,,,,,,,, : ;:, 1991,

人 物 春 秋 杨 永 泰 将 其 削 藩 策 略 概 括 为 : 以 经 济 方 法 瓦 解 冯 玉 祥 的 第 二 集 团 军, 以 政 治 方 法 解 决 阎 锡 山 的 第 3 集 团 军, 以 军 事 方 法 解 决 李 宗 仁 的 第 四 集 团 军, 以 外 交 方 法 对 付 张 学

C

chp6.ppt

untitled

untitled

Microsoft Word cppFinalSolution.doc

2013 C 1 # include <stdio.h> 2 int main ( void ) 3 { 4 int cases, a, b, i; 5 scanf ("%d", & cases ); 6 for (i = 0;i < cases ;i ++) 7 { 8 scanf ("%d %d

C/C++语言 - 运算符、表达式和语句

CHAPTER VC#

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.06.doc

untitled

立 志 于 打 造 最 贴 近 考 生 实 际 的 辅 导 书 计 算 机 考 研 之 数 据 结 构 高 分 笔 记 率 辉 编 著 周 伟 张 浩 审 核 讨 论 群 :

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

CHAPTER 1

第3章.doc

3. 給 定 一 整 數 陣 列 a[0] a[1] a[99] 且 a[k]=3k+1, 以 value=100 呼 叫 以 下 兩 函 式, 假 設 函 式 f1 及 f2 之 while 迴 圈 主 體 分 別 執 行 n1 與 n2 次 (i.e, 計 算 if 敘 述 執 行 次 數, 不

第一章 章标题-F2 上空24,下空24

int *p int a 0x00C7 0x00C7 0x00C int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++;

02

概述

Microsoft PowerPoint - ds-9.ppt [兼容模式]

Figure 1: Game Tree 为 了 方 便 讨 论, 我 们 这 里 设 这 里 讨 论 的 博 弈 树 是 一 棵 有 限 树, 设 有 两 个 棋 手 甲 与 乙 进 行 这 场 博 弈, 这 样, 博 弈 树 分 为 三 类 结 点 : 1. 奇 数 层 的 非 叶 子 结 点 :

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.07.doc

BOOL EnumWindows(WNDENUMPROC lparam); lpenumfunc, LPARAM (Native Interface) PowerBuilder PowerBuilder PBNI 2

ebook39-13

untitled

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

Microsoft Word - CPE考生使用手冊 docx

C/C++程序设计 - 字符串与格式化输入/输出

C++ 程序设计 OJ9 - 参考答案 MASTER 2019 年 6 月 7 日 1

C/C++语言 - 分支结构

untitled

Microsoft Word - ch04三校.doc

c_cpp

全国计算机技术与软件专业技术资格(水平)考试

untitled

C/C++ - 函数

全国计算机技术与软件专业技术资格(水平)考试

Strings

新・解きながら学ぶC言語

3. 反 映 : 4. 五 花 八 门 : 5. 慷 慨 : 6. 参 与 : 7. 慰 劳 : 8. 延 续 : 9. 珍 爱 : 10. 浪 漫 : 三. 找 出 下 列 每 组 词 中 的 近 义 词 或 同 义 词 : 节 日 节 气 节 令 时 节 习 俗 民 俗 仪 式 风 俗 文 献

extend

C++ 程序设计 告别 OJ2 - 参考答案 MASTER 2019 年 5 月 3 日 1

e bug 0 x=0 y=5/x 0 Return 4 2

chap07.key

javaexample-02.pdf

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit

说 : 荀 子 极 偏 驳, 只 一 句 性 恶, 大 本 已 失 5 朱 熹 说 : 荀 扬 不 惟 说 性 不 是, 从 头 到 底 皆 不 识 6 采 取 的 都 是 这 种 理 论 框 架 另 一 种 理 论 框 架 始 于 20 世 纪 前 期, 这 便 是 诸 子 学 研 究 的 框 架

51 C 51 isp 10 C PCB C C C C KEIL

新版 明解C言語入門編

3.1 num = 3 ch = 'C' 2

( 含 要 ) 1-2 用 或 雇 用, 抑 或 有 無 俸 給 文 職 或 武 職, 政 官 或 事 官 均 屬 之, 其 不 以 具 備 人 資 格 為 限, 因 此 屬 於 最 廣 義 之 念 四 廣 義 念 之 依 服 24 條 之 規 定 : 本 於 受 有 俸 給 之 文 武 職, 及

Microsoft Word - mei.doc

1 Framework.NET Framework Microsoft Windows.NET Framework.NET Framework NOTE.NET NET Framework.NET Framework 2.0 ( 3 ).NET Framework 2.0.NET F

Transcription:

CH1 2018 8 27 ( ) 2018 8 27 1 / 35

( ) 2018 8 27 2 / 35

https://giteecom/bzu-ds/ds-cpp https://giteecom/bzu-ds/cpp-dev-tools C++ https://perusallcom Course code:?????? ( ) 2018 8 27 2 / 35

1) 2) 3) 4) ( ) 2018 8 27 3 / 35

1-1 1-2 1-3 ( ) 2018 8 27 4 / 35

( ) 2018 8 27 5 / 35

( ) 2018 8 27 6 / 35

1) 2) ( ) 2018 8 27 7 / 35

3) 4) ( ) 2018 8 27 8 / 35

(D,S) D S D 1-4 1-5 ( ) 2018 8 27 9 / 35

bit 0/1 ( ) 2018 8 27 10 / 35

( ) 2018 8 27 11 / 35

( ) 2018 8 27 12 / 35

ADT 1 2 ( ) ( ) ( ) ( ) 2018 8 27 13 / 35

ADT (D,S,P) D S D P D 1-6 ADT ( ) 2018 8 27 14 / 35

( ) 2018 8 27 15 / 35

C/C++ C TRUE/FALSE, OK/ERROR Status C++, cin, cout E&, const E& template new, delete throw, try-catch 1-7 ( ) 2018 8 27 16 / 35

( ) 2018 8 27 17 / 35

( ) 2018 8 27 18 / 35

a b c d ( ) 2018 8 27 19 / 35

( ) 2018 8 27 20 / 35

n f(n) T (n) = O(f(n)) ( ) 2018 8 27 21 / 35

f(n) = 3n 2 + 5n + 7 O O(3n 2 + 5n + 7) = O(n 2 ) 1 O(3n) = O(n) 2 O(3n 2 + 5n) = O(n 2 ) ( ) 2018 8 27 22 / 35

+ 1 2 3 ( ) 2018 8 27 23 / 35

O(1) O(log n) O(n) O(polynomial(n)) O(1), O(n), O(n 2 ), O(n 3 ) O(2 n ), O(3 n ) f(n) 4,000 3,000 2,000 1,000 200 log 2 n 100n 5n 2 n 3 2 2 n 0 0 5 10 15 20 25 30 n ( ) 2018 8 27 24 / 35

( ) 2018 8 27 25 / 35

a[n] x -1 int find(e a[], int n, E x) { for(i=0; i<n; i++) { if(a[i]==x) return i; return -1; // not found ( ) 2018 8 27 26 / 35

a[n] x -1 int find(e a[], int n, E x) { for(i=0; i<n; i++) { if(a[i]==x) return i; return -1; // not found n ( ) 2018 8 27 26 / 35

a[n] x -1 int find(e a[], int n, E x) { for(i=0; i<n; i++) { if(a[i]==x) return i; return -1; // not found n O(n) ( ) 2018 8 27 26 / 35

a[n] x int binary_search(e a[], int n, const E& x) { int low, mid, high; low = 0; high = n-1; while(low <= high) { mid = (low + high) / 2; if(a[mid] < x) low = mid + 1; else if(a[mid] > x) high = mid - 1; else return mid; return -1; // not found ( ) 2018 8 27 27 / 35

a[n] x log 2 n + 1 ( ) 2018 8 27 28 / 35

a[n] x log 2 n + 1 O(log n) ( ) 2018 8 27 28 / 35

a[n] E min(e a[], int n) { E tmp = a[0]; for(int i=1; i<n; i++) if(a[i] < tmp) tmp = a[i]; return tmp; ( ) 2018 8 27 29 / 35

a[n] E min(e a[], int n) { E tmp = a[0]; for(int i=1; i<n; i++) if(a[i] < tmp) tmp = a[i]; return tmp; n 1 ( ) 2018 8 27 29 / 35

a[n] E min(e a[], int n) { E tmp = a[0]; for(int i=1; i<n; i++) if(a[i] < tmp) tmp = a[i]; return tmp; n 1 O(n) ( ) 2018 8 27 29 / 35

( ) 2018 8 27 30 / 35

3n 2 1 ( ) 2018 8 27 30 / 35

x n n double power(double x, int n) { if(n<0) throw std::invalid_argument("n<0"); if(n==0) return 1; else if(n&1) // odd or not return power(x*x, n/2)*x; else return power(x*x, n/2); ( ) 2018 8 27 31 / 35

x n n double power(double x, int n) { if(n<0) throw std::invalid_argument("n<0"); if(n==0) return 1; else if(n&1) // odd or not return power(x*x, n/2)*x; else return power(x*x, n/2); log 2 n ( ) 2018 8 27 31 / 35

x n n double power(double x, int n) { if(n<0) throw std::invalid_argument("n<0"); if(n==0) return 1; else if(n&1) // odd or not return power(x*x, n/2)*x; else return power(x*x, n/2); log 2 n O(log n) ( ) 2018 8 27 31 / 35

0 n = 0 f(n) = 1 n = 1 f(n 1) + f(n 2) n > 1 long long fib(int n) { if(n<=1) return n; else return fib(n-1) + fib(n-2); ( ) 2018 8 27 32 / 35

0 n = 0 f(n) = 1 n = 1 f(n 1) + f(n 2) n > 1 long long fib(int n) { if(n<=1) return n; else return fib(n-1) + fib(n-2); O(2 n ) ( ) 2018 8 27 32 / 35

0 n = 0 f(n) = 1 n = 1 f(n 1) + f(n 2) n > 1 long long fib(int n) { if(n<=1) return n; else return fib(n-1) + fib(n-2); O(2 n ) O(n) ( ) 2018 8 27 32 / 35

void bubble_sort(e a[], int n) { for(int i=0; i<n-1; i++) { bool change = false; for(int j=0; j<n-i-1; j++) { if(a[j] > a[j+1]) { swap(a[j], a[j+1]); change = true; if(!change) break; O(n 2 ) ( ) 2018 8 27 33 / 35

void bubble_sort(e a[], int n) { for(int i=0; i<n-1; i++) { bool change = false; for(int j=0; j<n-i-1; j++) { if(a[j] > a[j+1]) { swap(a[j], a[j+1]); change = true; if(!change) break; O(n 2 ) O(n) ( ) 2018 8 27 33 / 35

O ( ) 2018 8 27 34 / 35

( ) 2018 8 27 35 / 35