PowerPoint Presentation

Similar documents
什么是函数式编程?

報 告 議 員, 本 局 對 臺 北 市 列 管 的 地 下 加 油 站, 大 部 分 都 已 取 締 完 畢 目 前 只 剩 下 1 處, 我 們 還 在 持 續 觀 察 其 是 否 有 復 業 的 跡 象 臺 北 市 的 地 下 加 油 站 只 剩 下 1 處 而 已? 王 科 長 三 中 :

KV-cache 1 KV-cache Fig.1 WorkflowofKV-cache 2.2 Key-value Key ; Key Mem-cache (FIFO) Value Value Key Mem-cache ( Value 256B 100 MB 20%

支付宝2011年 IT资产与费用预算

我 的 小 確 幸 四 : 在 第 二 份 打 工 時, 遇 到 一 位 對 我 非 常 好 的 同 事, 她 是 帶 我 的 人, 她 對 我 非 常 有 耐 性 的 教 導, 一 次 又 一 次 的 細 心 帶 領 在 這 次 的 期 中 考 前, 我 沒 上 班, 因 說 要 準 備 考 試,

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

Microsoft PowerPoint - string_kruse [兼容模式]

我的生命哲學 五觀三一 陳學霖

01

数字电子技术 数字电子技术 数字电子技术 数字电子技术 数字电子技术 (A) (A) (A) (A) (A) 电力系统暂态分析 有机化学及实验 有机化学及实验 有机化学及实验 有机化学及实验 大学英语 大学英语 大学英语 大学英语 大学英语 大学英语 (1) 临潼校区重修上课安排

目 录 第 一 部 分 档 案 局 概 况 一 主 要 职 责 二 部 门 决 算 单 位 构 成 第 二 部 分 档 案 局 2016 年 度 部 门 预 算 表 一 2016 年 度 市 级 部 门 收 支 预 算 总 表 二 2016 年 度 市 级 部 门 支 出 预 算 表 三 2016

2015 年 度 收 入 支 出 决 算 总 表 单 位 名 称 : 北 京 市 朝 阳 区 卫 生 局 单 位 : 万 元 收 入 支 出 项 目 决 算 数 项 目 ( 按 功 能 分 类 ) 决 算 数 一 财 政 拨 款 一 一 般 公 共 服 务 支 出 二

<4D F736F F D20A4A4B0AAB5A5BD64A8D2BCCBA8F75FA978BAF4A4BDA7695F>

書本介紹


(Microsoft Word - 3\271\375\246\321\257R.doc)

大 台 北 與 桃 竹 苗 地 區 北 得 拉 曼 巨 木 步 道 新 竹 縣 尖 石 鄉 鎮 西 堡 巨 木 群 步 道 新 竹 縣 尖 石 鄉 鳥 嘴 山 登 山 步 道 苗 栗 縣 泰 安 鄉 加 里 山 登 山 步 道 苗 栗 縣 南 庄 鄉

<4D F736F F D B8BDBCFE4220D7A8D2B5BBF9B4A1D3EBBACBD0C4BFCEB3CCC3E8CAF62E646F6378>

第一章

Microsoft Word - 1HF12序.doc

Microsoft Word - 讀報看科普─人體篇_橫_.doc

Microsoft Word - 2B802內文.doc

鍟嗗搧瑙傚療鈥㈤挗鏉

席 远 杨 一 人 了, 正 当 她 开 枪 时 却 发 现 子 弹 没 了 该 死, 只 能 赤 手 空 拳 了 洛 水 云 与 席 远 杨 交 起 手 来, 洛 水 云 出 手 招 招 致 命 想 那 席 远 杨 也 不 是 泛 泛 之 辈, 很 快 掌 握 了 洛 水 云 出 招 路 数 看

東區校園中法治教育種子師資教學研習營

閱 讀 素 材 V.S 分 組 方 式 的 差 異 化 教 學 工 具 表 班 級 :( ) 閱 讀 素 材 V.S 分 組 方 式 獨 立 閱 讀 夥 伴 閱 讀 ( 同 質 性 ) 夥 伴 閱 讀 ( 異 質 性 ) 友 善 陪 伴 虛 心 受 教 國 語 日 報 新 聞 生 活 文 藝 兒 童

考 試 日 期 :2016/04/24 教 室 名 稱 :602 電 腦 教 室 考 試 時 間 :09: 二 技 企 管 一 胡 宗 兒 中 文 輸 入 四 技 企 四 甲 林 姿 瑄 中 文 輸 入 二 技 企 管 一

zxj

<443A5CCED2B5C4D7CAC1CF5CD7C0C3E65CB9D8D3DAC3FCC3FB C4EAB6C8CAA1C7E0C4EACEC4C3F7BAC5A1A2CAA1C7E0C4EACEC4C3F7BAC5B1EAB1F8BACDCAA1C7E0C4EACEC4C3F7BAC5CFC8BDF8B9A4D7F7D5DFB5C4BEF6B6A8C5C55CA3A830372E3038A3A9B9D8D3DAC3FCC3FB C4EAB

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

加 值 型 及 非 加 值 型 營 業 稅 法 第 12 條 ( 公 布 ) 特 種 飲 食 業 之 營 業 稅 稅 率 如 下 : 一 夜 總 會 有 娛 樂 節 目 之 餐 飲 店 之 營 業 稅 稅 率 為 百 分 之 十 五 二 酒 家 及 有 陪 侍 服 務 之 茶 室

(Microsoft Word - \244g\246a\247B\244\275\253H\245\365\244\247\275\325\254d\254\343\250s doc)

untitled

8:10-9:50 第一公共教学楼 A 高等数学 ( 文 ) 广告 人文与法学院 8:10-9:50 第一公共教学楼 A 高等数学 ( 经管 ) 国贸 经济学院 8:10-9:50 第一公共教学楼 A

考试时间课程名称级人数考试地点 机械工程 17 级卓越 1 30 D-386 机械工程 17 级卓越 2 30 D-386 自动化 17 级 1 30 D-3108 自动化 17 级 2 30 D-3108 电子信息工程 17 级 1 32 C-170 电子信息工程 17 级 2 32 C-242

附件一:纽卡斯尔大学联合培养项目(2+2)课程介绍

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

第 期 曹 源 等 形式化方法在列车运行控制系统中的应用

考生编号政治政治分外语外语分科目 1 科目 1 分科目 2 科目 2 分总分专业代码专业名称专业排名考试方式报名号 思想政治理论 62 英语一 78 数学一 108 普通物理 ( 包括力学 电磁学 光学 ) 物理电子学 1 全国统考 11

监考教师 :[ ] 顾玉坚 1 机械制图 (A)( 研讨 ) I :00( 星期四 ) 120 教八 主监考 监考教师 :[ ] 毛玉良 1 机电控制技术 :00( 星期三 ) 120 教四 -401

Microsoft PowerPoint - 01國家考試講座簡報--中興大學簡報

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数

ebook14-4

Turing Machine [1] n n n findmin (a 1, a 2,, a n ) 1. result a 1 2. index 2 3. result min (result, aindex) 4. index index go to step 3 till (in

法 律 時 事 漫 談 民 事 訴 訟, 當 事 人 要 適 格 摘 錄 自 法 務 部 全 球 資 訊 網 / 法 治 視 窗 ( 作 者 葉 雪 鵬, 曾 任 最 高 法 院 檢 察 署 主 任 檢 察 官 ) 不 久 之 前, 位 於 新 北 市 的 一 處 聘 有 保 全 公 司 入 駐,

...

《C语言程序设计》第2版教材习题参考答案

A Preliminary Implementation of Linux Kernel Virus and Process Hiding

05 01 X Window X Window Linux Linux X Window X Window Webmin Web Linux Linux X Window X Window Notebook PC X Window X Window module Linux Linux kernel

实验 6 无约束规划与非线性规划模型的求解 姓名 : 徐美君 学号 : 班级 : 数统 (3) 班 一 实验要求 (1) 了解 matlab 中常用优化命令 ( 无约束规划 : fminunc, fminsearch; 约束规 划 :fminbnd, fmincon, fmi

A B C D E A B C F A C. D F. A. B. C. D. E. F.

《C语言程序设计》教材习题参考答案

第一章

PowerPoint Presentation

学 的 人 数 达 到 万 人,79.5% 的 随 迁 子 女 在 公 办 学 校 就 读 但 是, 按 照 过 去 的 高 考 制 度, 这 些 学 生 只 能 回 到 户 籍 地 参 加 高 考 2010 年 7 月, 党 中 央 国 务 院 召 开 了 全 国 教 育 工 作 会

(Microsoft Word - \244p\275\327\244\345.doc)

(Microsoft Word - \261M\303D\263\370\247i- \271q\265\370\274s\274\275_511.HK_)

一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页

三 紀 錄 課 堂 上 可 見 的 學 習 情 況, 無 法 紀 錄 學 生 個 別 的 學 習 歷 程 四 教 師 無 彈 性 的 不 變 的 教 學 時 間 五 以 課 本 及 課 程 指 引 作 為 教 學 的 主 要 依 據 六 教 師 主 導 學 生 的 學 習 行 為 由 教 師 解 決

Undergraduate Schedule Course For Clinical Medicine on Jiangsu University

投影片 1

附 件 : 2009 年 度 国 家 精 品 课 程 名 单 一 本 科 国 家 精 品 课 程 ( 以 学 科 为 序, 共 400 门 ) 序 号 一 级 学 科 二 级 学 科 课 程 名 称 学 校 名 称 负 责 人 1 哲 学 哲 学 类 马 克 思 主 义 伦 理 学 安 徽 师 范

撰 寫 人 :2B1 王 清 燕 書 名 : 追 風 箏 的 女 孩 條 碼 號 : 月 份 閱 讀 心 得 佳 作 我 覺 得 這 是 一 本 教 我 們 用 殘 酷 的 角 度 認 識 生 命 的 小 說 ; 與 同 儕 甚 是 摯 友 間 也 可 能 出 現 競 奪 下 的

7.1 MapReduce Offline Online 计 算 流 式 计 算 并 行 数 据 库 的 SQL 查 询 数 据 仓 库 复 杂 查 询 应 用 电 子 商

C/C++ - 函数

考生编号 科目代码 科目名称 成绩 复核结果 翻译硕士英语 66 无误 翻译硕士英语 65 无误 翻译硕士英语 58 无误 日语 ( 外 )

查 看 抽 水 機 社 區 保 全 遭 電 擊 亡 新 莊 傳 工 安 意 外 工 人 施 工 觸 電 蘋 果 即 時 2011 年 11 月 17 日 新 北 市 新 店 區 1 名 大 樓 社 區 周 姓 保 全 (35 歲 ) 今 天 凌 晨 上 樓 查 看 抽 水 機 是 否 運 轉, 他

chap07.key

F515_CS_Book.book

Oracle 4

Microsoft Word - 《C语言开发入门》课程教学大纲-2.doc

Microsoft Word - 0-滨江文本.doc

奇特的一生(Эта странная жизнь)

01

数理逻辑 I Mathematical Logic I

epub83-1

第 05 期 董房等 : 一种卫星遥测在线状态监测及分析系统的设计 WEB 1 2 总体功能及组成 2.1 总体功能 1 2 3Web 2.2 结构组成 Web WEB WEB 2.3 系统各模块接口关系

特大调查事故与处理实例(五)


考生编号政治政治分外语外语分科目 1 科目 1 分科目 2 科目 2 分总分专业代码专业名称专业排名考试方式报名号 思想政治理论 缺考 英语一 缺考 数学三 缺考 思想政治理论 60 英语一 78 数学三

97年8月教務處工作報告

册子0906

! " # " " $ % " " # # " $ " # " #! " $ "!" # "# # #! &$! ( % "!!! )$ % " (!!!! *$ ( % " (!!!! +$ % " #! $!, $ $ $ $ $ $ $, $ $ "--. %/ % $ %% " $ "--/

PDFᅲᆰᄏ커￷5

python内存管理

《拍案惊奇》(中)

Microsoft PowerPoint - 01_Introduction.ppt

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

高 英 高 級 工 商 職 業 學 校 教 師 行 動 研 究 ( 專 題 製 作 ) 計 畫 書 科 別 姓 名 餐 飲 管 理 科 : 高 少 芸 老 師 製 作 主 題 養 生 夾 心 餅 乾 研 究 方 法 問 卷 法 訪 問 法 觀 察 法 文 獻 蒐 集 其 他 ( 實 驗 法 ) 研

NOWOER.OM m/n m/=n m/n m%=n m%n m%=n m%n m/=n 4. enum string x1, x2, x3=10, x4, x5, x; 函数外部问 x 等于什么? 随机值 5. unsigned char *p1; unsigned long *p

編 輯 大 意 一 本 指 引 係 配 合 中 學 華 文 課 本 編 寫 而 成, 提 供 教 師 教 學 參 考 之 用 二 本 書 編 寫 重 點 如 下 : ( 一 ) 作 者 : 詳 細 介 紹 作 者 生 平 及 成 就 ( 二 ) 題 解 : 介 紹 課 文 主 旨 及 相 關 背 景

PowerPoint 演示文稿

EC51/52 GSM /GPRS MODEN

Microsoft Word - 118巫誠恩.doc

《儿童少年卫生学》教学大纲

<5B BECBB0EDB8AEC1F25D312D34B0AD5FC3E2BCAEBCF6BEF7C0DAB7E F31702E504446>

PowerPoint 演示文稿

第 21 讲 CGI 程序 byperl 及 PHP 小结 张高川 遗传学与生物信息学系基础医学与生物科学学院苏州大学医学部 WX: zhanggaochuan QQ: 苏州大学医学部基础医学与生物科

Microsoft Word - LD5515_5V1.5A-DB-01 Demo Board Manual

Microsoft Word _2 課本1225_OK_0222修.doc

Transcription:

软件基础实践 课程简介 上海交通大学软件学院 臧斌宇

背景 莫名奇妙的改革 工科大平台 工科学生前三个学期学习基本相同的课程 高等数学 线性代数 物理及实验 化学及实验 理论力学 电路理论及实验 程序设计 数据结构 工程导论 工程实践 概率统计 离散数学 ( 数理方法 ) 专业自设 : 软件基础实践 计算机系统基础 ( 汇编 )

背景 程序设计能力训练 软件基础实践 (1 学分 ) 算法设计与实现习题课 (1 学分 )

软件基础实践 ( 第二学期 ) 内容和方式 Lab 课上布置和编码,TA 随时解决问题 每次课当面检查上次课的 Lab Project 需要时间较长, 线下实现 最后进行演示和答辩

Lab 1: 课程点名模拟 补充完成一个简单的 C++ 程序 目的 复习第一学期 C++ 课程内容 熟悉 C++ 的集成开发环境 (VS) 涵盖内容 C++ 字符串操作 输出 函数调用 类 继承 虚函数 模板

Lab 1: 课程点名模拟 补充完成一个简单的 C++ 程序 目的 复习第一学期 C++ 课程内容 熟悉 C++ 的集成开发环境 (VS) 涵盖内容 C++ 字符串操作 输出 函数调用 类 继承 虚函数 模板

Lab 2: MiniEd 行文本编辑器 Ed 是 Ken Thompson 开发的一个非常经典的行文本编辑器 被用于文本文件的创建 显示 更改和其他一些操作两种模式 command mode 启动时的模式 输入的文本会被当做命令进行处理 input mode 通过一些特殊命令切换到输入模式 输入的文本会被当做文件内容进行保存

Lab 2: MiniEd 行文本编辑器 MiniEd 实现 Ed 命令的一个子集 进一步熟悉 C++ 的集成开发环境 理解提供的 C++ 代码, 并根据需求增加相应功能 涵盖内容 C++ 字符串操作 ( 根据给定格式进行解析 ) C++ 标准输入输出流 文件输入输出流的使用 类 继承 异常处理 ( 如非法输入 )

Lab 2: MiniEd 行文本编辑器 涵盖内容 C++ 字符串操作 ( 根据给定格式进行解析 ) C++ 标准输入输出流 文件输入输出流的使用 类 继承 异常处理 ( 如非法输入 )

Lab 3: 基于链表 (List) 的 MiniEd

Lab 3: 基于链表 (List) 的 MiniEd 使用链表实现文本编辑器的数据存储部分 目的 修改面向对象程序中的某个部件 复习和掌握 C++ 中的指针 涵盖内容 链表的类设计 指针操作 动态内存管理 (new delete)

TUI: Text-based User Interface TUI 例 1:Linux kernel menuconfig TUI 例 2:https://github.com/fdehau/tui-rs

Lab 4: Tower of Hanoi 汉诺塔 实现一个字符界面可视化汉诺塔游戏 目的 回顾和练习递归 练习字符界面交互 (TUI) 的使用 涵盖内容 递归求解 求解过程的自动化展示 学生作品

Lab 5: 2D-Tree 按照要求实现一个 2D 树结构 支持快速查询某点的最近点 (4,4) 比较 X (1,2) (8,9) 比较 Y (2,1) (1,4) (6,7) 比较 X (0,4) (3,4) (7,8) 比较 Y From Stanford CS106B (7,6) (9,9)

Lab 5: 2D-Tree [1] 目的 练习复杂数据结构的实现 (2D- 树 ) 强化指针的使用 练习给定算法的实现 涵盖内容 容器类的设计 树的基本操作 ( 增删改查 ) 指针使用 动态内存管理 (new delete) 基于 2D 树快速查找最近点

Project 1: QSnake 贪吃蛇 使用 Qt 图形库设计和实现一个图形化贪吃蛇游戏 目的 学习和掌握图形界面交互 (GUI)( 使用 Qt) 练习面向对象设计 简单的 AI 算法实现 ( 蛇自动寻食物 ) 涵盖内容 类的设计和继承 多态的使用 动态内存管理 图形化显示和交互 ( 显示图形 / 图片 事件响应和处理 ) 深度优先 / 广度优先搜索

学生作品

软件基础实践 ( 第三学期 ) 方式 上课介绍 Project( 两次 ) Lab 只有一次课 讲解带回溯的递归 ( 八皇后 ) 练习带回溯的递归 ( 全排列 )

Project 2: Boggle 找单词游戏 根据给出的 Qt 显示框架代码, 完成一个找单词的游戏 目的 练习递归和回溯算法的设计 熟悉图形化用户交互和事件处理 涉及内容 C++ 文件操作 字符串操作 指针的使用 数据结构的使用 ( 链表 字典树 (Trie) 等 ) 递归和回溯 事件处理 Modified from Stanford CS106B

学生作品

Project 3: Minimal Basic 实现一个简化 Basic 语言的编辑器和解释器 Modified from Stanford CS106B

Project 3: Minimal Basic 目的 接触和掌握简单的语法分析和词法分析 练习表达式树的使用和表达式求值 练习模拟程序执行 涉及内容 类的设计 继承和多态的使用 动态内存管理 指针和表达式树的使用 程序状态维护和解释执行 拓展功能选做 支持右结合运算符 支持字符串 支持函数定义和调用 支持外部 C 函数调用 设断点

第四学期课程 ( 键值存储系统 ) 基于 Log-Structured Merge Tree (LSM) LSM Tree 是 Google 开源项目 LevelDB 和 Facebook 开源项目 RocksDB 的核心数据结构 是近年来存储学术会议中的热门话题 https://upload.wikimedia.org/wikipedia/commons/thumb/d/da/rocksdb-icon.svg/220px-rocksdb-icon.svg.png

LSM Tree 键值存储系统 基本操作 PUT(K,V): 设置键 K 的值为 V GET(K): 获取键 K 的值 SCAN(K1, K2): 获取键在 K1~K2 之间的所有键值对 使用迭代器 DELETE(K): 删除键 K 和其值

LSM Tree 键值存储系统 基本结构 : 内存和磁盘两部分 内存数据结构 :memtable 常用的是跳表 (skip-list), 也可以选用平衡二叉树等 新写入的数据均被保存在 memtable 中 磁盘中分层保存持久化数据, 每层有多个文件 (sstable) 每个文件中保存的 key 是有序的 同一层中文件保存的 key 区间不相交 越下层文件数量越多, 数量比例是预设的 Level 1 Level 2 Level 3 memtable DRAM DISK

LSM Tree 键值存储系统 合并操作 (compaction) 当 memtable 中数据量达到阈值, 需将其数据保存到磁盘中 将 DRAM 中的 memtable 视为 Level 0 memtable DRAM Level 1 DISK Level 2 Level 3

LSM Tree 键值存储系统 合并操作 (compaction) 当 memtable 中数据量达到阈值, 需将其数据保存到磁盘中 将 DRAM 中的 memtable 视为 Level 0 将 Level 0 中的文件与下一层中的文件进行归并排序, 结果写入到下一层中 Level 0 Level 1 memtable DRAM DISK Level 2 Level 3

LSM Tree 键值存储系统 合并操作 (compaction) 当 memtable 中数据量达到阈值, 需将其数据保存到磁盘中 将 DRAM 中的 memtable 视为 Level 0 将 Level 0 中的文件与下一层中的文件进行归并排序, 结果写入到下一层中 若下一层文件数超出限定, 则将其中一个文件继续往更下层合并 Level 0 Level 1 Level 2 DRAM DISK Level 3

LSM Tree 键值存储系统 合并操作 (compaction) 当 memtable 中数据量达到阈值, 需将其数据保存到磁盘中 将 DRAM 中的 memtable 视为 Level 0 将 Level 0 中的文件与下一层中的文件进行归并排序, 结果写入到下一层中 若下一层文件数超出限定, 则将其中一个文件继续往更下层合并 Level 0 Level 1 Level 2 DRAM DISK Level 3

LSM Tree 键值存储系统 性能测试和瓶颈分析 掌握软件测试方法和性能瓶颈分析 熟悉常用的 KV 测试集 如 Yahoo! Cloud Serving Benchmark (YCSB)

LSM Tree 键值存储系统 可选的优化方向和方法 方向 提升合并速度 提升读写性能 减少写放大 提升可靠性 方法 使用布隆过滤器 (Bloom Filter): 快速判断指定 Key 不在某个 sstable 中 使用两个 memtable: 当一个在合并时, 另外一个可以处理新的写操作 增加 write-ahead-log: 保证写到 memtable 的数据不会丢失

问题 如何保证程序的质量 可能的解决方法 使用华为开发云 如何解决开发环境?

离散数学 ( 第三学期 ) 1 命题逻辑 1.1. 什么是命题逻辑 1.2. 如何将程序转化为命题逻辑 1.3. 利用 SAT Solver 证明程序的正确性 2 一阶逻辑 2.1. 什么是一阶逻辑 表达式过于复杂 2.2. 将程序转化为一阶逻辑 2.3. 利用 SMT Solver 证明程序的正确性 无法证明嵌有循环的程序 3 霍尔逻辑 3.1. 公理系统 3.2. 霍尔逻辑 3.3. 利用霍尔逻辑自动化验证 (Dafny)

离散数学 Dafny(MSR) 霍尔逻辑 SMT Solver 一阶逻辑 SAT Solver 命题逻辑 程序形式化验证

离散数学 int BinarySearch(int a[], int len, int value) { int low=0, high=len; while(low < high) { int mid = (low + high) / 2; if(a[mid] < value) low := mid + 1; else if(value < a[mid]) high := mid; else return mid; } return -1; } method BinarySearch(a: array<int>, value: int) returns (index: int) requires 0 <= a.length && sorted(a) ensures 0 <= index ==> index < a.length && a[index] == value ensures index < 0 ==> forall k :: 0<=k<a.Length ==> a[k]!= value { var low, high := 0, a.length; while low < high invariant 0 <= low <= high <= a.length invariant forall i :: 0<=i<a.Length &&!(low <= i < high) ==> a[i]!= value { var mid := (low + high) / 2; if a[mid] < value low := mid + 1; else if value < a[mid] high := mid; else return mid; } return -1; }

谢谢