
Chinese: 
如下内容以
CC 协议 发布
你的支持将帮助 MIT 开放课程计划
持续提供高质量的免费教育资源
如您想要捐助或查看附加的材料
来自数百个MIT课程，
请访问MIT开放式课件
在ocw.mit.edu。
 
Hi
我是Srini Devadas.
我是电子工程和计算机科学的教授
科学。
我将教授6.006算法导论这门课程
这是我的助教Erik Domane.
Eric，和大家打个招呼
Hi
（笑）
希望大家在6.006课程学习各种算法的过程中
过得开心
各种算法。
今天我想先花几分钟
或更少的时间来讲下课程管理细则
我想要什么
做的是告诉你

Arabic: 
الأتى
يتم توفير المحتوى
تحت الإبداعي
رخصة العموم.
دعمك سيساعد جامعة أم أي تي اوبنكورسوار على الإستمرار
لتوفير تعليم عالي الجودة بالمجان
للقيام بتبرع أو لمشاهدة المزيد من المواد العليمية
من مئات الكورسات، قم بزيارة visit MIT OpenCourseWare
في ocw.mit.edu
 
المحاضر: مرحباً
انا سيريني ديفاداس
محاضر في كلية الهندسة الكهربائية و علوم الحاسوب
علم.
انا سأقوم بالمحاضرة جنباً إلى جنب كأستاذ مساعد في كورس
مقدمة للوغاريتمات 6.006 بجانب البروفسور إريك دومان
إريك، قل مرحباً
إريك دومان: مرحباً
[ضحك]
البروفسور للطلبة: و نحن نتمنى أن تقضو
وقتا ممتعاً في 6.006 في تعلم
تنوع من اللوغاريتمات
ما أريد القيام به اليوم، هة التحدث لمدة دقيقة أو شيء من ذلك
عن التفاصيل الإدارية، أو لربما حتى أقل
ما أود قوله لكم هو أنكم يجب أن تقومو بزيارة

English: 
The following
content is provided
under a Creative
Commons license.
Your support will help MIT
OpenCourseWare continue
to offer high quality
educational resources for free.
To make a donation or
view additional materials
from hundreds of MIT courses,
visit MIT OpenCourseWare
at ocw.mit.edu.
PROFESSOR: Hi.
I'm Srini Devadas.
I'm a professor of electrical
engineering and computer
science.
I'm going to be co-lecturing
6.006-- Introduction
to Algorithms-- this term
with professor Erik Domane.
Eric, say hi.
ERIK DOMANE: Hi.
[LAUGHTER]
PROFESSOR: And we
hope you're going
to have a fun time
in 6.006 learning
a variety of algorithms.
What I want to do today is
spend literally a minute or so
on administrative
details, maybe even less.
What I'd like to
do is to tell you

English: 
to go to the website that's
listed up there and read it.
And you'll get all
information you
need about what this class
is about from a standpoint
of syllabus; what's expected
of you; the problem set
schedule; the quiz schedule;
and so on and so forth.
I want to dive right in and tell
you about interesting things,
like algorithms and
complexity of algorithms.
I want to spend
some time giving you
an overview of the
course content.
And then we're
going to dive right
in and look at a
particular problem of peak
finding-- both the one
dimensional version and a two
dimensional version-- and
talk about algorithms to solve
this peak finding problem--
both varieties of it.
And you'll find
that there's really
a difference between
these various algorithms
that we'll look at in
terms of their complexity.
And what I mean
by that is you're

Arabic: 
الموقع المرفق أعلاه والقيام بقرائته
وستحصلون على كل المعلومات
التي ستحتاجونها عن الفصل من وجهة نظر شاملة
القوانين، ما متوقع منكم، جدول المشاكل
جدول الإمتحانات، وما إلى ذلك
أريد أن أبدأ مباشرةً وأغوص في التفاصيل المهمة
مثل اللوغاريثمات و تعقيدات اللوغاريثمات
أريد أن أخصص بعض الوقت لإعطائكم
نبذة عامة عن محتوى الكورس
بعدها ستبدأ مرحلة الغوص والإهتمام بالتفاصيل المهمة مثل إيجاد أكبر قيمة
 
في البعدين الأحادي و الثنائي
والتكلم عن اللوغاريثمات لحل
مشكلة إيجاد القيمة الكبرى، شكليها الإثنين
وستجد أنه يوجد غختلاف مابين أنواع هذه اللوغاريثمات
التي سنتكلم عنها من ناحية التفاصيل و الصعوبة
التي سنتكلم عنها من ناحية التفاصيل و الصعوبة

Chinese: 
去那个网站
在那里列出并阅读。
你会得到所有
信息你
需要了解这堂课的内容
从一个角度来看
教学大纲;期望什么
你的;问题集
时间表;测验时间表;
等等等等。
我想潜入并告诉
你关于有趣的事情，
像算法和
算法的复杂性。
我想花
有些时间给你
概述
课程内容。
然后我们
要正确下潜
在和看看
特别的高峰问题
发现 - 两者都是
三维版本和两个
三维版本 - 和
谈谈要解决的算法
这个峰值发现问题 - 
它的两个品种。
你会发现
真的有
之间的区别
这些各种算法
我们会看看
他们复杂的条款。
我的意思是
那是你

Chinese: 
将有不同的运行
这些算法的时间
取决于输入
大小，基于如何
这些算法是有效的。
和一个先决条件
这个班级是6.042。
在6.042你学到了
关于渐近复杂性。
你会看到的
在这个讲座中
我们会分析一下
简单的算法今天
在他们的方面
渐近复杂性。
你就可以
比较和说
该算法是紧固的
这另一个 - 假设
你有很大的
投入 - 因为它
渐近较不复杂。
所以让我们直接进入
并谈论这个课程。
 
所以这一句话
这个班的总结
这是关于的
有效的程序

Arabic: 
وما أعنية بذلك هو أنكم
ستحصلون على أوقات معالجة مختلفة لهذه اللوغاريثمات
بناءاً على حجم المدخلات، سنقرر فعالية هذه اللوغاريثمات
وفي تلك المادة تعلمتم عن التعقيد المتقارب
والمتطلب الأولي لهذه المادة هي مادة 6.042
وفي تلك المادة تعلمتم عن التعقيد المتقارب
وفي هذه المحاضرة سنتكلم عن تحليل اللوغاريثمات السهلة البسيطة
أي من اللوغاريثمات أسرع من الأخرى
بمصطلحات التعقيد المتقارب
وستتمكنون من تمييز و معرفة
أي من اللوغاريثمات أسرع من الأخرى
إعتقاداً بأن لديك مدخلات كبيرة، لأنها أقل تقارباً من ناحية التعقيد
هو أن هذا هو حول
إجراءات فعالة

English: 
going to have different run
times of these algorithms
depending on input
size, based on how
efficient these algorithms are.
And a prerequisite for
this class is 6.042.
And in 6.042 you learned
about asymptotic complexity.
And you'll see that
in this lecture
we'll analyze relatively
simple algorithms today
in terms of their
asymptotic complexity.
And you'll be able
to compare and say
that this algorithm is fasten
this other one-- assuming
that you have large
inputs-- because it's
asymptotically less complex.
So let's dive right in
and talk about the class.
So the one sentence
summary of this class
is that this is about
efficient procedures

Chinese: 
解决问题
对大量投入。
当我说的很大
投入，我的意思是事情
像美国的高速公路
系统，一张地图
所有高速公路
在美国;
人类基因组，哪个
有十亿封信件
在其字母表中;一个社会
网络回应Facebook，
我猜有500
百万个节点左右。
所以这些都是很大的投入。
现在我们对大的定义了
真的随着时代而变化。
真的是第21个
世纪大的定义
我想是一万亿。
对？
当我还是你的年龄的时候
大的就像1000。
[笑声]
我想我在这里约会自己。
当埃里克是你的时候回来
年龄，这是一百万。
对？
[笑声]
但是真的发生了什么
世界正在变得更快，
事情变得越来越大。

English: 
for solving problems
on large inputs.
And when I say large
inputs, I mean things
like the US highway
system, a map
of all of the highways
in the United States;
the human genome, which
has a billion letters
in its alphabet; a social
network responding to Facebook,
that I guess has 500
million nodes or so.
So these are large inputs.
Now our definition of large has
really changed with the times.
And so really the 21st
century definition of large
is, I guess, a trillion.
Right?
Back when I was your age
large was like 1,000.
[LAUGHTER]
I guess I'm dating myself here.
Back when Eric was your
age, it was a million.
Right?
[LAUGHTER]
But what's happening really
the world is moving faster,
things are getting bigger.

Arabic: 
حسناً فالنبدأ بالحديث عن هذا الفصل
وعندما أقول كبيرة
المدخلات، أعني الأشياء
مثل الطريق السريع في الولايات المتحدة
نظام، خريطة
من جميع الطرق السريعة
في الولايات المتحدة الأمريكية؛
الجينوم البشري، الذي
لديها مليار رسالة
في الأبجدية. اجتماعية
شبكة الرد على الفيسبوك،
أن أعتقد أن 500
مليون العقد أو نحو ذلك.
لذلك هذه هي مدخلات كبيرة.
الآن لدينا تعريف كبير لديه
تغيرت حقا مع العصر.
وهكذا حقا ال 21
تعريف القرن الكبير
هو، أعتقد، تريليون دولار.
حق؟
مرة أخرى عندما كنت عمرك
كان كبيرا مثل 1،000.
[ضحك]
اعتقد اننى يرجع تاريخى هنا.
مرة أخرى عندما كان اريك الخاص بك
العمر، كان مليون.
حق؟
[ضحك]
ولكن ما يحدث حقا
العالم يتحرك بشكل أسرع،
والأشياء هي الحصول على أكبر.

Arabic: 
لدينا القدرة
والحوسبة على المدخلات الكبيرة،
ولكن هذا لا
يعني أن الكفاءة
ليس شاغلا بالغ الأهمية.
حقيقة المسألة هي
يمكنك، ربما،
مسح مليار العناصر
في بضع ثوان.
ولكن إذا كان لديك خوارزمية
التي تتطلب تعقيدا مكعب،
فجأة كنت لا تتحدث
حوالي 10 رفعت إلى 9،
أنت تتكلم عن
10 الى 27.
وحتى الحالية
أجهزة الكمبيوتر لا يمكن حقا
التعامل مع تلك الأنواع من الأرقام،
لذلك الكفاءة هي مصدر قلق.
وكما المدخلات الحصول على أكبر، فإنه
يصبح أكثر من مصدر قلق.
حسنا؟
لذلك نحن قلقون بشأن -
 
- كفاءة الإجراءات - ل
حل المشاكل على نطاق واسع
في هذا الصف.
 

Chinese: 
我们有能力
计算大量输入，
但事实并非如此
意味着效率
不是最重要的问题。
事情的事实是
你可以，也许，
扫描十亿个元素
在几秒钟内。
但是如果你有一个算法
这需要立方体复杂性，
突然你不说话
约10升至9，
你在说什么
10提高到27。
甚至是最新的
电脑不能真的
处理这些数字，
所以效率是一个问题。
随着投入越来越大，它
变得更加关注。
好吧？
所以我们很关心 -
 
- 有效的程序 - 
解决大规模问题
在这个班上。
 

English: 
We have the capability of
computing on large inputs,
but that doesn't
mean that efficiency
isn't of paramount concern.
The fact of matter is
that you can, maybe,
scan a billion elements
in a matter of seconds.
But if you had an algorithm
that required cubic complexity,
suddenly you're not talking
about 10 raised to 9,
you're talking about
10 raised to 27.
And even current
computers can't really
handle those kinds of numbers,
so efficiency is a concern.
And as inputs get larger, it
becomes more of a concern.
All right?
So we're concerned about--
--efficient procedures-- for
solving large scale problems
in this class.

English: 
And we're concerned
about scalability,
because-- just as,
you know, 1,000
was a big number a
couple of decades ago,
and now it's kind of
a small number-- it's
quite possible that by the
time you guys are professors
teaching this class
in some university
that a trillion is going
to be a small number.
And we're going to be talking
about-- I don't know--
10 raised to 18
as being something
that we're concerned with from
a standpoint of a common case
input for an algorithm.
So scalability is important.
And we want to be able to track
how our algorithms are going
to do as inputs get
larger and larger.
You going to learn a bunch
of different data structures.
We'll call them classic
data structures,

Chinese: 
我们担心
关于可伸缩性，
因为 - 就像，
你知道，1,000
是一个很大的数字
几十年前，
现在是这样
一小部分 - 这是
这很可能是由
你们是教授的时候
教这门课
在一些大学里
一万亿美元正在发生
成为一个小数目。
我们将会谈论
关于 - 我不知道 -
10提高到18
作为某事
我们关心的是
一个常见案例的立场
输入一个算法。
所以可伸缩性非常重要。
我们希望能够跟踪
我们的算法如何进行
做输入得到
越来越大。
 
你要学习一堆
不同的数据结构。
我们会称它们为经典
数据结构，

Arabic: 
ونحن قلقون
حول قابلية،
لأن - تماما كما،
كما تعلمون، 1000
كان عدد كبير أ
قبل بضعة عقود،
والآن انها نوع من
عدد صغير-- انها
من الممكن جدا أن من قبل
الوقت يا رفاق أساتذة
تدريس هذه الفئة
في بعض الجامعات
أن تريليون تسير
أن يكون عدد قليل.
وسوف نتحدث
about-- أنا لا أعرف -
10 رفعت الى 18
باعتبارها شيئا
التي نهتم بها من
من وجهة نظر قضية مشتركة
الإدخال لخوارزمية.
لذا فإن التدرج مهم.
ونحن نريد أن تكون قادرة على تتبع
كيف خوارزميات لدينا تسير
أن تفعل كمدخلات الحصول عليها
أكبر وأكبر.
 
أنت ذاهب لتعلم حفنة
من هياكل البيانات المختلفة.
سنقوم بالاتصال بهم الكلاسيكية
هياكل البيانات،

English: 
like binary search
trees, hash tables-- that
are called dictionaries
in Python-- and data
structures-- such as balanced
binary search trees-- that
are more efficient than just
the regular binary search trees.
And these are all
data structures
that were invented
many decades ago.
But they've stood
the test of time,
and they continue to be useful.
We're going to augment these
data structures in various ways
to make them more efficient
for certain kinds of problems.
And while you're not going to be
doing a whole lot of algorithm
design in this
class, you will be
doing some design and a
whole lot of analysis.
The class following this
one, 6.046 Designing Analysis
of Algorithms, is
a class that you
should take if
you like this one.
And you can do a whole lot more
design of algorithms in 6.046.
But you will look at
classic data structures

Arabic: 
مثل البحث الثنائي
الأشجار، الجداول هاش - ذلك
تسمى القواميس
في بيثون - والبيانات
الهياكل - مثل متوازنة
البحث ثنائي الأشجار - ذلك
هي أكثر كفاءة من مجرد
أشجار البحث الثنائية العادية.
وهذه كلها
هياكل البيانات
التي تم اختراعها
قبل عقود عديدة.
لكنهم وقفت
اختبار الزمن،
وهي لا تزال مفيدة.
ونحن في طريقنا إلى زيادة هذه
هياكل البيانات بطرق مختلفة
لجعلها أكثر كفاءة
لأنواع معينة من المشاكل.
وبينما كنت لن تكون
تفعل الكثير من الخوارزمية
تصميم في هذا
سوف تكون
القيام ببعض التصميم و
الكثير من التحليل.
 
الطبقة التالية هذا
واحد، 6.046 تصميم التحليل
من الخوارزميات، هو
فئة التي أنت
يجب أن تأخذ إذا
كنت أحب هذا واحد.
ويمكنك أن تفعل أكثر من ذلك بكثير
تصميم الخوارزميات في 6.046.
ولكن سوف ننظر
هياكل البيانات الكلاسيكية

Chinese: 
比如二进制搜索
树，散列表 -
被称为字典
在Python中 - 和数据
结构 - 如平衡
二叉搜索树 - 即
比刚才更有效率
常规的二叉搜索树。
这些都是
数据结构
那是发明的
几十年前。
但他们站了起来
时间的考验，
并且它们继续有用。
我们将增加这些
数据结构以各种方式
使他们更有效率
对于某些类型的问题。
而你不会成为的
做了很多算法
在此设计
上课，你会的
做一些设计和一个
大量的分析。
 
接下来的课程
一，6.046设计分析
算法，是
你是一个班级
应该采取如果
你喜欢这个。
你可以做更多的事情
6.046中的算法设计。
但你会看
经典的数据结构

Chinese: 
和经典算法
对于这些数据结构，
包括排序等
和匹配等等。
其中一个很好
关于这个类的东西
你会做到真实
这些数据的实现
结构和
算法在Python中。
 
特别是
每个问题
在这个类中的集合
将有一个理论
一部分给他们，和一个
编程部分给他们。
所以希望它会
所有人都结合在一
我们要去的东西的种类
在讲座中谈论
和朗诵正在进行
直接连接
到理论部分
的问题集。
你会编程的
我们讨论的算法
在讲座或增加
他们，运行它们。

Arabic: 
والخوارزميات الكلاسيكية
لهذه الهياكل البيانات،
بما في ذلك أشياء مثل الفرز
ومطابقة، وهلم جرا.
واحدة من لطيفة
الأشياء حول هذه الفئة
هو أنك سوف تفعل الحقيقي
وتنفيذ هذه البيانات
والهياكل
خوارزميات في بايثون.
 
وعلى وجه الخصوص هي
كل من المشكلة
مجموعات في هذه الفئة هي
سوف يكون لدينا نظرية
جزء منها، و أ
جزء البرمجة لهم.
لذا نأمل أنه سوف
كل التعادل معا.
أنواع الأشياء نحن ذاهبون
أن نتحدث عنه في المحاضرات
وتلاوات تسير
أن تكون مرتبطة مباشرة
إلى الأجزاء النظرية
من مجموعات المشكلة.
وعليك أن تكون برمجة
الخوارزميات التي نتحدث عنها
في محاضرة، أو زيادة
لهم، تشغيلها.

English: 
and classical algorithms
for these data structures,
including things like sorting
and matching, and so on.
And one of the nice
things about this class
is that you'll be doing real
implementations of these data
structures and
algorithms in Python.
And in particular are
each of the problem
sets in this class are
going to have both a theory
part to them, and a
programming part to them.
So hopefully it'll
all tie together.
The kinds of things we're going
to be talking about in lectures
and recitations are going
to be directly connected
to the theory parts
of the problem sets.
And you'll be programming the
algorithms that we talk about
in lecture, or augmenting
them, running them.

English: 
Figuring out whether they work
well on large inputs or not.
So let me talk a little
bit about the modules
in this class and
the problem sets.
And we hope that
these problem sets
are going to be fun for you.
And by fun I don't mean easy.
I mean challenging and
worthwhile, so at the end of it
you feel like you've
learned something,
and you had some
fun along the way.
All right?
So content wise--
--we have eight
modules in the class.
Each of which,
roughly speaking, has
a problem set
associated with it.
The first of these is what
we call algorithmic thinking.
And we'll kick start
that one today.

Arabic: 
معرفة ما إذا كانوا يعملون
وكذلك على المدخلات الكبيرة أم لا.
 
لذلك اسمحوا لي أن أتحدث قليلا
بت حول وحدات
في هذه الفئة و
تحدد المشكلة.
ونأمل ذلك
هذه مجموعات المشكلة
سوف تكون ممتعة بالنسبة لك.
والمرح لا يعني سهلة.
أعني التحدي و
جديرة بالاهتمام، وذلك في نهاية ذلك
كنت أشعر بأنك قد
تعلمت شيئا،
وكان لديك بعض
متعة على طول الطريق.
حسنا؟
لذلك المحتوى الحكمة -
 
- لدينا ثمانية
وحدات في الصف.
كل واحدة منها،
يتحدث تقريبا، لديه
مجموعة مشكلة
المرتبطة بها.
أول هذه هي ما
ونحن ندعو التفكير الخوارزمية.
 
ونحن سوف تبدأ البداية
أن أحد اليوم.

Chinese: 
搞清楚他们是否工作
以及是否大量输入。
 
所以让我谈一点
有关模块
在这个类和
问题集。
我们希望这一点
这些问题集
对你来说会很有趣。
通过娱乐我并不是那么容易。
我的意思是挑战和
值得的，所以最后
你感觉就像你一样
学到了什么，
你有一些
一路上很有趣。
好吧？
所以内容明智 -
 
- 我们有八个
班级中的模块。
其中的每个，
大致来说，已经
一个问题集
与之相关联。
第一个是什么
我们称之为算法思维。
 
我们将开始
那一个今天。

Chinese: 
我们会看一个特定的
问题，正如我所提到的，
峰值发现。
并作为其中的一部分
这个，你要走了
有一个问题集
今天也要出去。
你会发现
在这个问题集
一些这些算法
我今天会谈谈会
用Python编码并提供给。
他们中的一些人正在进行
在他们有错误。
你必须分析
这些算法的复杂性;
找出哪些是
正确和高效;
并写一个证明
为其中之一。
好吧？
所以这是一个
示例问题集。
你可以期待这一点
大部分问题集
将会跟随
那种模板。
好吧。
所以你会得到一个
对此有更好的理解
结束了
今天肯定。
或者具体的意义
这个，因为我们会
完成演讲，你会的
看到你的第一个问题集。
我们将要做一个
排序和树木模块。

English: 
We'll look at a particular
problem, as I mentioned,
of peak finding.
And as part of
this, you're going
to have a problem set that's
going to go out today as well.
And you'll find that
in this problem set
some of these algorithms
I talk about today will
be coded in Python and given to.
A couple of them are going
to have bugs in them.
You'll have to analyze the
complexity of these algorithms;
figure out which ones are
correct and efficient;
and write a proof
for one of them.
All right?
So that's sort of an
example problem set.
And you can expect that
most of the problem sets
are going to follow
that sort of template.
All right.
So you'll get a
better sense of this
by the end of the
day today for sure.
Or a concrete sense
of this, because we'll
be done with lecture and you'll
see your first problem set.
We're going to be doing a
module on sorting and trees.

Arabic: 
سنلقي نظرة خاصة
كما ذكرت،
من ذروة الاكتشاف.
وكجزء من
هذا، أنت ذاهب
لديك مشكلة تعيين هذا
الذهاب للخروج اليوم كذلك.
وستجد ذلك
في هذه المشكلة مجموعة
بعض هذه الخوارزميات
أتحدث عن اليوم
تكون مشفرة في بيثون وتعطى ل.
وهناك زوجين منهم ذاهبون
أن يكون الخلل فيها.
سيكون لديك لتحليل
تعقيد هذه الخوارزميات.
معرفة أي منها
صحيحة وفعالة؛
وكتابة دليل
واحد منهم.
حسنا؟
لذلك هذا نوع من
مثال مشكلة المشكلة.
ويمكنك أن تتوقع ذلك
معظم المشكلة يحدد
سوف تتبع
هذا النوع من القالب.
حسنا.
لذلك سوف تحصل على
شعور أفضل من هذا
بحلول نهاية
اليوم اليوم بالتأكيد.
أو معنى ملموس
من هذا، لأننا سوف
يجب أن يتم مع محاضرة وعليك
راجع مجموعة المشكلة الأولى.
سنقوم بذلك
وحدة على الفرز والأشجار.

Chinese: 
现在排序你，
排序一堆数字。
想象一下，如果你有
万亿数字
你想分类他们。
什么样的算法
可以用于那个？
树木是美好的
数据结构。
有不同的品种，
最常见的是二叉树。
有办法
各种各样的东西，
像调度，排序，
使用各种树木，
包括二叉树。
我们遇到了一个问题
模拟一个逻辑网络
使用某种特定的
数据中的排序算法
结构体。
那将是
你的第二个问题集。
更快，我们要走了
在哈希模块上，
我们在哪里做事
像基因组比较。
在过去的条件下我们比较了一个
人类基因组到大鼠基因组，
并发现他们
非常相似。

Arabic: 
فرز لك الآن عن،
فرز مجموعة من الأرقام.
تخيل لو كان لديك
وأرقام تريليون
وكنت تريد فرزها.
أي نوع من الخوارزمية
يمكن أن تستخدم لذلك؟
الأشجار هي رائعة
هيكل البيانات.
هناك أنواع مختلفة، و
والأكثر شيوعا هي الأشجار الثنائية.
وهناك طرق للقيام بها
كل أنواع الأشياء،
مثل الجدولة، والفرز،
باستخدام أنواع مختلفة من الأشجار،
بما في ذلك الأشجار الثنائية.
ولدينا مشكلة على
محاكاة شبكة منطقية
باستخدام نوع معين من
فرز الخوارزمية في البيانات
بناء.
هذا سيكون
تم تعيين المشكلة الثانية.
وبسرعة أكبر، نحن ذاهبون
أن يكون وحدات على التجزئة،
حيث نفعل الأشياء
مثل مقارنة الجينوم.
في الماضي مقارنة نحن أ
الجينوم البشري لجينوم الفئران،
واكتشفوا
كانت مشابهة جدا.

English: 
Sorting you now about,
sorting a bunch of numbers.
Imagine if you had
a trillion numbers
and you wanted to sort them.
What kind of algorithm
could use for that?
Trees are a wonderful
data structure.
There's different varieties, the
most common being binary trees.
And there's ways of doing
all sorts of things,
like scheduling, and sorting,
using various kinds of trees,
including binary trees.
And we have a problem set on
simulating a logic network
using a particular kind of
sorting algorithm in a data
structure.
That is going to be
your second problem set.
And more quickly, we're going
to have modules on hashing,
where we do things
like genome comparison.
In past terms we compared a
human genome to a rat genome,
and discovered they
were pretty similar.

Arabic: 
99٪ مماثلة، والتي
هو نوع من مذهلة.
ولكن مرة أخرى، هذه الأمور
كبيرة جدا أن لك
يجب أن يكون لها كفاءة
في طرق المقارنة
التي تستخدمها.
وستجد أنه إذا كنت
لا تحصل على تعقيد منخفض
يكفي، أنت فقط لن
تكون قادرة على إكمال -
فإن البرنامج لن يكون قادرا على
الانتهاء من تشغيل في غضون الوقت
أن مجموعة المشكلة الخاصة بك تفعل.
حق؟
الذي هو قليلا من مشكلة.
لذلك هذا شيء للحفاظ عليه
في الاعتبار أثناء اختبار الشفرة.
والحقيقة هي أنك سوف تحصل
مدخلات كبيرة لتشغيل التعليمات البرمجية الخاصة بك.
وتريد أن تبقي
تعقيد في الاعتبار
كما كنت الترميز والتفكير
حول الكاذب،
إذا كنت سوف، من الخاص بك
الخوارزمية نفسها.
سنتحدث عن الأرقام.
 
وهناك الكثير من الوقت نتحدث
حول هذه الأعداد الكبيرة
أن 32 بت ليست كافية.
أو 64 بت لا يكفي ل
تمثل هذه الأرقام.
هذه الأرقام لها
الآلاف من بت.

Chinese: 
其中99％相似
真是太神奇了。
但是，再次，这些东西
对你来说太大了
必须有效率
在比较方法中
你使用的。
你会发现，如果你
不要把复杂性降到最低
够了，你就不会
能够完成 -
你的程序将无法执行
在这段时间内完成运行
你的问题集是做的。
对？
这是一个问题。
所以这是要保持的
记住你测试你的代码。
事实是，你会得到
大量输入来运行你的代码。
你想保持
考虑到复杂性
因为你在编码和思考
关于伪代码，
如果你愿意，你的
算法本身。
我们将讨论数字。
 
很多时候我们都在谈论
关于这么大的数字
那32位是不够的。
或64位是不够的
代表这些数字。
这些数字有
数千位。

English: 
99% similar, which
is kind of amazing.
But again, these things
are so large that you
have to have efficiency
in the comparison methods
that you use.
And you'll find that if you
don't get the complexity low
enough, you just won't
be able to complete--
your program won't be able to
finish running within the time
that your problem set is do.
Right?
Which is a bit of a problem.
So that's something to keep
in mind as you test your code.
The fact is that you will get
large inputs to run your code.
And you want to keep
complexity in mind
as you're coding and thinking
about the pseudocode,
if you will, of your
algorithm itself.
We will talk about numerics.
A lot of the time we talk
about such large numbers
that 32 bits isn't enough.
Or 64 bits isn't enough to
represent these numbers.
These numbers have
thousands of bits.

English: 
A good example is
RSA encryption,
that is used in
SSL, for example.
And when you go-- use
https on websites,
RSA is used at the back end.
And typically you work
with prime numbers
that are thousands
of bits long in RSA.
So how do you handle that?
How does Python handle that?
How do you write
algorithms that can
deal with what are called
infinite precision numbers?
So we have a module on numerics
in the middle of the term that
talks about that.
Graphs, really a
fundamental data structure
in all of computer science.
You might have heard of the
famous Rubik's cube assignment
from .
006 a 2 by 2 by 2 Rubik's cube.
What's the minimum
number of moves
necessary to go from a
given starting configuration
to the final end configuration,
where all of the faces-- each
of the faces has uniform color?

Arabic: 
ومن الأمثلة الجيدة على ذلك
رسا التشفير،
التي يتم استخدامها في
سل، على سبيل المثال.
وعندما تذهب go-- استخدام
هتبس على مواقع الويب،
يستخدم رسا في النهاية الخلفية.
وعادة ما تعمل
مع الأعداد الأولية
التي هي الآلاف
من بتات طويلة في رسا.
فكيف يمكنك التعامل مع ذلك؟
كيف يعالج بيثون ذلك؟
كيف تكتب
الخوارزميات التي يمكن
التعامل مع ما يسمى
أرقام الدقة لانهائية؟
لذلك لدينا وحدة على العددي
في منتصف المدة التي
يتحدث عن ذلك.
الرسوم البيانية، حقا أ
هيكل البيانات الأساسية
في جميع علوم الكمبيوتر.
كنت قد سمعت من
الشهير المكعب روبيك مكعب
من عند .
006 a 2 بي 2 بي 2 روبيك's كوب.
ما هو الحد الأدنى
عدد من التحركات
ضروري للذهاب من
نظرا التكوين البداية
إلى تكوين نهاية النهائي،
حيث كل من الوجوه-- كل
من الوجوه ولون موحد؟

Chinese: 
一个很好的例子是
RSA加密，
用于
例如，SSL。
当你去 - 使用
https在网站上，
RSA在后端使用。
通常你工作
与素数
数千人
RSA中的比特长。
那么你如何处理？
Python如何处理？
你怎么写
算法可以
处理所谓的
无限精确数字？
所以我们有一个关于数字的模块
在这个词的中间
谈论这个。
图表，真的是
基础数据结构
在所有的计算机科学。
你可能听说过
着名的魔方分配
从。
006 a 2 x 2 2魔方。
最低要求是多少？
移动次数
必须从一个
给定起始配置
到最后的配置，
所有的面孔 - 每个面孔
的脸上有均匀的颜色？

English: 
And that can be posed
as a graph problem.
We'll probably do
that one this term.
In previous terms
we've done other things
like the 15 puzzle.
And so some of
these are tentative.
We definitely know what the
first problem set is like,
but the rest of them are,
at this moment, tentative.
And to finish up shortest paths.
Again in terms past
we've asked you
to write code using a
particular algorithm that
finds the shortest path
from Caltech to MIT.
This time we may do things
a little bit differently.
We were thinking maybe we'll
give you a street map of Boston
and go figure out
if Paul Revere used
the shortest path to get
to where he was going,
or things like that.
We'll try and make it fun.
Dynamic programming is an
important algorithm design

Chinese: 
这可以提出
作为图形问题。
我们可能会这样做
那一个这个词。
以前的术语
我们做了其他事情
像15个谜题一样。
还有一些
这些都是暂定的。
我们肯定知道什么
第一个问题集就像，
但其余的是，
在这一刻，暂定。
并完成最短路径。
再次以过去的方式
我们问过你
使用a编写代码
特定的算法
找到最短的路径
从加州理工到麻省理工。
这次我们可能会做一些事情
有点不同。
我们想也许我们会
给你一张波士顿的街道地图
并找出答案
如果Paul Revere使用的话
获得的最短路径
到他要去的地方，
或类似的东西。
我们会尽力让它变得有趣。
动态编程是一个
重要的算法设计

Arabic: 
وهذا يمكن أن يطرح
كمشكلة الرسم البياني.
سنقوم على الأرجح
أن واحدا هذا المصطلح.
في المصطلحات السابقة
لقد فعلنا أشياء أخرى
مثل اللغز 15.
وحتى بعض من
وهذه مؤقتة.
نحن نعرف بالتأكيد ما
المشكلة الأولى مجموعة مثل،
ولكن بقية منهم،
في هذه اللحظة، مؤقتة.
والانتهاء من أقصر الطرق.
مرة أخرى من حيث الماضي
لقد طلبنا منك
لكتابة التعليمات البرمجية باستخدام أ
خوارزمية معينة ذلك
يجد أقصر الطرق
من كالتيش إلى معهد ماساتشوستس للتكنولوجيا.
هذه المرة قد نفعل الأشياء
بشكل مختلف قليلا.
كنا نفكر ربما سنقوم
تعطيك خريطة الشارع بوسطن
وتذهب معرفة
إذا بول ريفير المستخدمة
أقصر الطرق للحصول عليها
إلى أين كان ذاهبا،
أو أشياء من هذا القبيل.
سنحاول وجعله متعة.
البرمجة الديناميكية هي
تصميم خوارزمية مهمة

Chinese: 
使用的技术
在很多很多问题上。
它可以用来做一个
包括各种各样的东西
图像压缩。
你如何压缩图像
所以像素的数量
减少，但它仍然
看起来像图像
你开始与，
有更多的像素？
好吧？
所以你可以使用动态
为此编程。
最后，高级主题，
复杂性理论，研究
和算法。
希望到现在为止
这次在这个过程中，
你已经卖出
算法。
大多数，如果没有
你们所有人都会
想追求一个
算法中的载体。
我们会给你一个感觉
还有什么。
我们只是在抓这个
在这个类中表面，
而且有很多很多
你可能会遇到的类
采取，如果你想继续
在 - 学习算法，
或追求一个
算法的职业生涯。
好吧？
所以那就是了
班上的故事，
或课堂简介。

Arabic: 
تقنية المستخدمة
في كثير، العديد من المشاكل.
ويمكن استخدامه للقيام
مجموعة متنوعة من الأشياء، بما في ذلك
ضغط الصورة.
كيف تقوم بضغط صورة
وبالتالي فإن عدد بكسل
يقلل، لكنه لا يزال
يشبه الصورة
التي بدأت بها،
التي كانت أكثر من بكسل؟
حسنا؟
حتى تتمكن من استخدام ديناميكية
برمجة لذلك.
وأخيرا، الموضوعات المتقدمة،
نظرية التعقيد، والبحوث
والخوارزميات.
نأمل من قبل now-- بواسطة
هذه المرة في الدورة،
لقد تم بيعها
على الخوارزميات.
ومعظم، إن لم يكن
كل واحد منكم، سوف
تريد متابعة
الناقل في الخوارزميات.
وسنقدم لك شعورا
من ماذا يوجد هناك.
نحن مجرد خدش
السطح في هذه الفئة،
وهناك الكثير والكثير
الطبقات التي يمكنك
اتخاذ إذا كنت ترغب في الاستمرار
in-- لمعرفة الخوارزميات،
أو لمتابعة
الوظيفي في الخوارزميات.
حسنا؟
لذلك هذا هو
قصة الطبقة،
أو ملخص للطبقة.

English: 
technique that's used
in many, many problems.
And it can be used to do a
variety of things, including
image compression.
How do you compress an image
so the number of pixels
reduces, but it still
looks like the image
that you started out with,
that had many more pixels?
All right?
So you could use dynamic
programming for that.
And finally, advanced topics,
complexity theory, research
and algorithms.
Hopefully by now-- by
this time in the course,
you have been sold
on algorithms.
And most, if not
all of you, would
want to pursue a
carrier in algorithms.
And we'll give you a sense
of what else is there.
We're just scratching the
surface in this class,
and there's many, many
classes that you can possibly
take if you want to continue
in-- to learn about algorithms,
or to pursue a
career in algorithms.
All right?
So that's the
story of the class,
or the synopsis of the class.

Arabic: 
وأنا أشجعكم على الذهاب الإنفاق
بضع دقائق على الموقع.
على وجه الخصوص يرجى قراءة
سياسة التعاون، والحصول على
شعور ما هو
المتوقع منك.
ما هي القواعد من حيث الشروط
من القيام مجموعات المشكلة.
وبالطبع
الدرجات كسر،
فإن سياسات الدرجات كلها
المدرجة على الموقع كذلك.
حسنا.
حسنا.
اذا هيا بنا نبدأ.
اريد ان اتحدث عن
مشكلة محددة.
والحديث عن الخوارزميات
لمشكلة محددة.
اخترنا هذه المشكلة، لأنه
فإنه من السهل جدا أن نفهم.
وانهم إلى حد ما
خوارزميات واضحة
التي ليست على وجه الخصوص
فعالة لحلها
هذه المشكلة.
وهكذا هذا هو نوع
من، مشكلة لعبة.
ولكن مثل الكثير من
مشاكل لعبة، انها
مذكر جدا في ذلك
يشير إلى المسائل ذات الصلة
في تصميم
خوارزميات فعالة.
لذلك سنبدأ مع
واحد الأبعاد

English: 
And I encourage you to go spend
a few minutes on the website.
In particular please read the
collaboration policy, and get
a sense of what is
expected of you.
What the rules are in terms
of doing the problem sets.
And the course
grading break down,
the grading policies are all
listed on the website as well.
All right.
OK.
So let's get started.
I want to talk about
a specific problem.
And talk about algorithms
for a specific problem.
We picked this problem, because
it's so easy to understand.
And they're fairly
straightforward algorithms
that are not particularly
efficient to solve
this problem.
And so this is a, kind
of, a toy problem.
But like a lot of
toy problems, it's
very evocative in that it
points out the issues involved
in designing
efficient algorithms.
So we'll start with
a one dimensional

Chinese: 
我鼓励你去花钱
在网站上几分钟。
特别请阅读
协作政策，并获得
什么是感觉
期待你。
规则是什么
做问题集。
和课程
分级分解，
分级政策都是
也列在网站上。
好吧。
好。
所以让我们开始吧。
我想谈谈
一个具体的问题。
并谈论算法
针对特定问题。
我们选择了这个问题，因为
这很容易理解。
他们很公平
简单的算法
那不是特别的
高效解决
这个问题。
所以这是一种善良
玩具问题。
但像很多
玩具问题，是的
它非常令人回味
指出涉及的问题
在设计中
高效的算法。
所以我们将开始
一维

Chinese: 
我们的版本
呼叫高峰发现。
 
而峰值发现者是一些东西
在一维情况下。
 
运行在一系列数字上。
而我只是把 -
- 每个符号的符号
这些数字在这里。
数字是
正负。
我们只假设
他们都是积极的，
它并不重要。
算法我们
描述会起作用。
所以我们有这个
一维数组
那有九个
不同的职位。
而通过我是数字。
 
我们想要找到一个高峰。
所以我们必须定义
我们的意思是一个高峰。

English: 
version of what we
call peak finding.
And a peak finder is something
in the one dimensional case.
Runs on an array of numbers.
And I'm just putting--
--symbols for each of
these numbers here.
And the numbers are
positive, negative.
We'll just assume
they're all positive,
it doesn't really matter.
The algorithms we
describe will work.
And so we have this
one dimensional array
that has nine
different positions.
And a through i are numbers.
And we want to find a peak.
And so we have to define
what we mean by a peak.

Arabic: 
نسخة ما نحن
استدعاء ذروة النتيجة.
 
ومكتشف الذروة شيء
في حالة واحدة الأبعاد.
 
يعمل على مجموعة من الأرقام.
وأنا مجرد وضع -
--symbols لكل من
هذه الأرقام هنا.
والأرقام هي
إيجابي، سلبي.
سنفترض فقط
انهم جميعا إيجابية،
فإنه لا يهم حقا.
خوارزميات نحن
وصف سوف تعمل.
وهكذا لدينا هذا
صفيف واحد الأبعاد
التي لديها تسعة
مواقف مختلفة.
و من خلال أنا أرقام.
 
ونحن نريد أن نجد الذروة.
وهكذا علينا أن نعرف
ما نعنيه من ذروة.

Arabic: 
وهكذا، على وجه الخصوص،
كمثال،
موقف 2 هو
الذروة إذا، وفقط
إذا، b أكبر من أو يساوي
أ، و b أكبر من أو يساوي
إلى c.
لذلك انها حقا محلية جدا
الممتلكات المقابلة
إلى الذروة.
في البعد واحد
حالة، انها تافهة.
انظر إلى يسارك.
انظر إلى حقك.
إذا كنت متساويا أو أكبر
من كلا العنصرين
التي تراها على اليسار و
الحق، أنت ذروة.
حسنا؟
وفي حالة
حواف، أنت فقط
يجب أن ننظر إلى جانب واحد.
لذا فإن الموضع 9 هو الذروة إذا كان i
أكبر من أو يساوي h.
لذلك عليك فقط أن
ننظر إلى يسارك هناك،
لأنك على طول الطريق
على جهة اليد اليمنى.
حسنا؟

Chinese: 
特别是，
举个例子，
位置2是a
高峰如果，只有
如果，b大于或等于
a和b大于或等于
到c。
所以这真的是一个非常本地的
财产相应
到一个高峰。
在一维中
情况，这是微不足道的。
看看你的左边。
看你的权利。
如果你同等或更高
比这两个要素
你看到左边和
正确的，你是一个高峰。
好？
而在这种情况下
边缘，只有你
必须向一边看。
所以9号位是一个高峰，如果我
大于或等于h。
所以你只需要
看看你的左边，
因为你一路都好
在右手侧。
好吧？

English: 
And so, in particular,
as an example,
position 2 is a
peak if, and only
if, b greater than or equal to
a, and b greater than or equal
to c.
So it's really a very local
property corresponding
to a peak.
In the one dimensional
case, it's trivial.
Look to your left.
Look to your right.
If you are equal or greater
than both of the elements
that you see on the left and
the right, you're a peak.
OK?
And in the case of
the edges, you only
have to look to one side.
So position 9 is a peak if i
greater than or equal to h.
So you just have to
look to your left there,
because you're all the way
on the right hand side.
All right?

Arabic: 
لذلك هذا كل شيء.
وبيان من
المشكلة، واحد الأبعاد
الإصدار، هو العثور على
الذروة إذا كان موجودا.
 
حسنا؟
هذا كل ما في الامر.
انا ذاهب الى اعطيكم
خوارزمية واضحة.
ثم سنرى
إذا كنا نستطيع تحسينه.
حسنا؟
يمكنك أن تتخيل أن
خوارزمية واضحة هي
شيء فقط، أنت
تعرف، يمشي عبر مجموعة.
ولكننا نحتاج إلى ذلك كبداية
نقطة لبناء شيء
اكثر تطورا.
 
لنفترض أننا نبدأ
من اليسار وجميع

Chinese: 
就是这样了。
和的声明
问题，一维
版本，是找到的
如果存在，则为峰值。
 
好吧？
这里的所有都是它的。
我会给你一个
直截了当的算法。
然后我们会看到
如果我们能改进它。
好吧？
你可以想象得到
直截了当的算法是
这就是你
知道，走过阵列。
但我们需要这一点作为开始
点建设的东西
更复杂。
 
所以我们说我们开始
从左侧和所有

English: 
So that's it.
And the statement of the
problem, the one dimensional
version, is find the
peak if it exists.
All right?
That's all there is to it.
I'm going to give you a
straightforward algorithm.
And then we'll see
if we can improve it.
All right?
You can imagine that the
straightforward algorithm is
something that just, you
know, walks across the array.
But we need that as a starting
point for building something
more sophisticated.
So let's say we start
from left and all

Arabic: 
لدينا واحد
اجتياز، حقا.
 
لذلك دعونا نقول لدينا
1، 2، ثم نحن
يكون أكثر من 2 أكثر
هنا المقابلة
إلى منتصف
هذا العنصر ن مجموعة.
ثم لدينا
n ناقص 1، و n.
ما يهمني
في القيام به، ليس فقط
الخروج مع
خوارزمية واضحة،
ولكن أيضا على وجه التحديد
تميز
ما تعقيدها
هو في العلاقة
إلى n، وهو
عدد المدخلات.
بلى؟
سؤال؟
الحضور: لماذا
أنت تقول إذا كان موجودا
عندما المعايير
في [غير مسموع]
ضمانات [غير مسموع]؟
أستاذ: هذا صحيح تماما.
كنت ذاهبا للوصول إلى ذلك.
حتى إذا نظرتم إلى
تعريف الذروة،
ثم ما لدي هنا
أكبر من أو يساوي.
حسنا؟
وهكذا this-- هذا شيء عظيم
السؤال الذي طرح.

English: 
we have is one
traversal, really.
So let's say we have
1, 2, and then we
have n over 2 over
here corresponding
to the middle of
this n element array.
And then we have
n minus 1, and n.
What I'm interested
in doing is, not only
coming up with a
straightforward algorithm,
but also precisely
characterizing
what its complexity
is in relation
to n, which is the
number of inputs.
Yeah?
Question?
AUDIENCE: Why do
you say if it exists
when the criteria
in the [INAUDIBLE]
guarantees [INAUDIBLE]?
PROFESSOR: That's exactly right.
I was going to get to that.
So if you look at the
definition of the peak,
then what I have here is
greater than or equal to.
OK?
And so this-- That's a great
question that was asked.

Chinese: 
我们有一个
遍历，真的。
 
所以我们说，我们有
1，2，然后我们
有超过2
这里对应
到中间
这个n元素数组。
然后我们有
n减1，n。
我感兴趣的
在做的不仅仅是
想出一个
直截了当的算法，
但也正是如此
特征
它有多复杂
是有关系的
到n，这是
输入数量。
是吗？
题？
听众：为什么
你说它是否存在
当时的标准
在[听不清]
担保[INAUDIBLE]？
教授：完全正确。
我正要去解决这个问题。
所以，如果你看看
高峰的定义，
那么我在这里就是
大于或等于。
好？
这样 - 这真是太棒了
被问到的问题。

Chinese: 
为什么会有“如果它
存在“在这个问题？
现在在我拥有的情况下
大于或等于，
那么 - 这是一项功课
问题给你，
对于你们其他人 - 争论
任何数组将永远
有一个高峰。
好？
现在，如果你没有
大于或等于，
你有一个大于，
那么你能否提出这样的论点？
不，你不能。
对？
非常好的问题。
在这种情况下
就一个问题 -
你会想
修改这个问题
声明找到峰值。
但如果我有一个不同的
定义一个高峰 - 这个
是算法思维的一部分。
你希望能够创建
一般的算法，
所以如果出现问题
定义变化在你身上，
你仍然有一个开始
指向去攻击
第二个版本
的问题。
好？

Arabic: 
لماذا هناك "إذا كان
موجود "في هذه المشكلة؟
الآن في حالة حيث لدي
أكبر من أو يساوي،
ثم - هذا هو الواجبات المنزلية
سؤال لك،
وبقية لك - يجادل
أن أي صفيف سوف دائما
لديها ذروة.
حسنا؟
الآن إذا لم يكن لديك
أكبر من أو يساوي،
وكان لديك أكبر من،
ثم يمكنك جعل هذه الحجة؟
لا، لا يمكنك.
حق؟
سؤال كبير جدا.
في هذه الحالة هو
فقط سؤال--
كنت تريد
تعديل هذه المشكلة
بيان للعثور على الذروة.
ولكن إذا كان لدي مختلفة
تعريف الذروة - وهذا
هو جزء من التفكير الخوارزمية.
تريد أن تكون قادرا على خلق
الخوارزميات التي هي عامة،
لذلك إذا كانت المشكلة
تعريف التغييرات على لك،
لا يزال لديك بداية
نقطة للذهاب الهجوم
النسخة الثانية
من المشكلة.
حسنا؟

English: 
Why is there "if it
exists" in this problem?
Now in the case where I have
greater than or equal to,
then-- this is a homework
question for you,
and for the rest of you-- argue
that any array will always
have a peak.
OK?
Now if you didn't have the
greater than or equal to,
and you had a greater than,
then can you make that argument?
No, you can't.
Right?
So great question.
In this case it's
just a question--
You would want to
modify this problem
statement to find the peak.
But if I had a different
definition of a peak-- and this
is part of algorithmic thinking.
You want to be able to create
algorithms that are general,
so if the problem
definition changes on you,
you still have a starting
point to go attack
the second version
of the problem.
OK?

English: 
So you could eliminate
this in the case
of the greater than or
equal to definition.
The "if it exists", because
a peak will always exist.
But you probably want
to argue that when
you want to show the
correctness of your algorithm.
And if in fact you had
a different definition,
well you would have to create
an algorithm that tells you
for sure that a peak
doesn't exist, or find
a peak if it exists.
All right?
So that's really
the general case.
Many a time it's possible that
you're asked to do something,
and you can't actually give
an answer to the question,
or find something that satisfies
all the constraints required.
And in that case, you want to
be able to put up your hand
and say, you know what?
I searched long and hard.
I searched exhaustively.
Here's my argument that
I searched exhaustively,
and I couldn't find it.
Right?
If you do that, you
get to keep your job.
Right?
Otherwise there's
always the case
that you didn't
search hard enough.

Arabic: 
حتى تتمكن من القضاء
هذا في القضية
من أكبر من أو
مساويا للتعريف.
و "إذا كان موجودا"، لأنه
فإن ذروة موجودة دائما.
ولكن ربما تريد
أن يجادل أنه متى
كنت تريد أن تظهر
صحة خوارزمية الخاص بك.
وإذا كان لديك في الواقع
تعريف مختلف،
حسنا سيكون لديك لخلق
خوارزمية تخبرك
بالتأكيد أن الذروة
غير موجود، أو تجد
ذروة إذا كان موجودا.
حسنا؟
لذلك هذا حقا
الحالة العامة.
كثير من الوقت من الممكن أن
يطلب منك أن تفعل شيئا،
ولا يمكنك أن تعطي في الواقع
إجابة على السؤال،
أو العثور على شيء يرضي
كل القيود المطلوبة.
وفي هذه الحالة، تريد
تكون قادرة على طرح يدك
وتقول، أنت تعرف ماذا؟
لقد بحثت طويلة وصعبة.
لقد بحثت بشكل شامل.
وهنا حجة بلدي ذلك
لقد بحثت بشكل شامل،
ولم أستطع العثور عليه.
حق؟
إذا قمت بذلك، أنت
الحصول على عملك.
حق؟
وإلا هناك
الحال دائما
أنك لم تفعل ذلك
البحث بجد بما فيه الكفاية.

Chinese: 
所以你可以消除
在这种情况下
大于或大于
等于定义。
“如果存在”，因为
一个高峰将永远存在。
但你可能想要
争论什么时候
你想展示
你的算法的正确性。
如果其实你有
一个不同的定义，
那么你将不得不创造
一个告诉你的算法
肯定是一个高峰
不存在或找不到
如果存在，则为峰值。
好吧？
所以这是真的
一般情况。
很多时候都可能
你被要求做一些事情，
而你实际上无法给予
这个问题的答案，
或找到满足的东西
所有需要的约束。
在那种情况下，你想要
能够举起你的手
并说，你知道吗？
我经过漫长而艰苦的搜索。
我详尽地搜索。
这是我的观点
我彻底地搜查，
我找不到它。
对？
如果你这样做，你
得到保持你的工作。
对？
否则有
总是这样
你没有
足够努力搜索。

English: 
So it's nice to
have that argument.
All right?
Great.
Thanks for the question.
Feel free to interrupt.
Raise your hand, and
I'm watching you guys,
and I'm happy to answer
questions at any time.
So let's talk about the
straightforward algorithm.
The straightforward
algorithm is something
that starts from the left
and just walks across.
And you might have something
that looks like that.
All right?
By that-- By this I mean
the numbers are increasing
as you start from the
left, the peak is somewhere
in the middle, and then
things start decreasing.
Right?
So in this case, you know,
this might be the peak.
You also may have
a situation where
the peak is all the
way on the right,
you started from the left.
And it's 1, 2, 3,
4, 5, 6, literally
in terms of the numbers.

Arabic: 
لذلك من الجميل أن
لديهم هذه الحجة.
حسنا؟
عظيم.
شكرا على السؤال.
لا تتردد في مقاطعة.
رفع يدك، و
أنا أراقب يا رفاق،
وأنا سعيد للرد
الأسئلة في أي وقت.
لذلك دعونا نتحدث عن
خوارزمية واضحة.
مباشرة
الخوارزمية شيء
التي تبدأ من اليسار
و يمشي فقط عبر.
وربما يكون لديك شيء
التي تبدو من هذا القبيل.
حسنا؟
بهذا - أعني بذلك
فإن الأرقام تتزايد
كما تبدأ من
اليسار، الذروة في مكان ما
في الوسط، وبعد ذلك
تبدأ الأمور في الانخفاض.
حق؟
حتى في هذه الحالة، كما تعلمون،
قد يكون هذا الذروة.
 
قد يكون لديك أيضا
حالة حيث
الذروة هي كل شيء
الطريق على اليمين،
كنت بدأت من اليسار.
وانها 1، 2، 3،
4، 5، 6، حرفيا
من حيث الأرقام.

Chinese: 
所以很高兴
有这个说法。
好吧？
大。
感谢您的问题。
随意打断。
举起你的手，然后
我在看着你们，
我很高兴回答
随时提问。
所以让我们来谈谈
直截了当的算法。
直截了当
算法是什么
从左边开始
然后走过去。
你可能会有一些东西
看起来像那样。
好吧？
由此 - 我的意思是
数字正在增加
从你开始
离开，高峰在某个地方
在中间，然后
事情开始减少。
对？
所以在这种情况下，你知道，
这可能是最高峰。
 
你也可能有
一种情况
高峰是全部
方式在右边，
你从左边开始。
它是1，2，3，
4，5，6，字面意思
就数字而言。

English: 
And you're going to look at
n elements going all the way
to the right in order
to find the peak.
So in the case of
the middle you'd
look at n over 2 elements.
If it was right in the middle.
And the complexity,
worst case complexity--
--is what we call theta n.
And it's theta n, because
in the worst case,
you may have to look
at all n elements.
And that would be the case
where you started from the left
and you had to go all
the way to the right.
Now remember theta n is
essentially something
that's says of the order of n.
So it gives you both the lower
bound and an upper bound.
Big [? O ?] of n is
just upper bound.
And what we're
saying here is, we're
saying this algorithm
that starts from the left

Arabic: 
وأنت تسير للنظر في
n عناصر تسير على طول الطريق
إلى اليمين في النظام
للعثور على الذروة.
حتى في حالة
في منتصف كنت
ننظر إلى n أكثر من 2 العناصر.
 
إذا كان الحق في الوسط.
 
والتعقيد،
أسوأ تعقيد الحالة -
- ما نسميه ثيتا n.
وانها ثيتا ن، لأنه
في أسوأ الأحوال،
قد تضطر إلى النظر
على الإطلاق.
وهذا هو الحال
حيث بدأت من اليسار
وكان عليك أن تذهب كل شيء
الطريق إلى اليمين.
الآن تذكر ثيتا ن هو
أساسا شيء
وهذا يقول من ترتيب n.
لذلك فهو يوفر لك كل من أقل
ملزمة والحد الأعلى.
كبير [؟ O؟] من n هو
فقط الحد العلوي.
وما نحن عليه
قائلا هنا، نحن
قائلا هذه الخوارزمية
التي تبدأ من اليسار

Chinese: 
你会看看
n个元素一路走来
按顺序排列
找到高峰。
所以在这种情况下
中间你会
看看2个元素。
 
如果它正确的话。
 
而复杂性，
最坏情况的复杂性
- 就是我们所说的那个。
而且它是theta n，因为
在最坏的情况下，
你可能要看
在所有n个元素。
情况就是如此
你从左边开始的地方
你必须全力以赴
向右边的路。
现在请记住theta n是
本质上是某种
这就是说n的顺序。
所以它给你两个更低
绑定和上限。
大 [？ O？]的n是
只是上限。
而我们是
这里说的是，我们是
说这个算法
从左边开始

English: 
is going to, essentially,
require in the worst case
something that's a
constant times n.
OK?
And you know that
constant could be 1.
You could certainly
set things up that way.
Or if you had a different
kind of algorithm,
maybe you could work
on the constant.
But bottom line, we're only
concerned, at this moment,
about as asymptotic complexity.
And the asymptotic complexity
of this algorithm is linear.
All right?
That make sense?
OK.
So someone help me do better.
How can we do better?
How can we lower the
asymptotic complexity
of a one dimensional
peak finder?
Anybody want to
take a stab at that?
Yeah?
Back there.
AUDIENCE: Do a
binary search subset.
You look at the
middle, and whatever
is higher-- whichever side is
higher, then cut that in half,

Chinese: 
基本上，
在最坏的情况下需要
这是一个
常数倍
好？
你知道的
常数可以是1。
你当然可以
设置这样的事情。
或者如果你有不同的
算法的种类，
也许你可以工作
上不断。
但底线，我们只是
有关，此时此刻，
关于渐近复杂性。
渐近的复杂性
该算法是线性的。
好吧？
有道理？
好。
所以有人帮助我做得更好。
我们怎样才能做得更好？
我们怎么能降低这个
渐近复杂性
一维的
峰值查找器？
任何人都想
在刺探那个？
是吗？
回到那里。
观众：做一个
二进制搜索子集。
你看看
中间，等等
更高 - 无论哪一方
更高，然后减半，

Arabic: 
هو، أساسا،
تتطلب في أسوأ الحالات
شيء هذا
أوقات ثابتة n.
حسنا؟
وانت تعلم هذا
ثابت يمكن أن يكون 1.
هل يمكن بالتأكيد
تعيين الامور بهذه الطريقة.
أو إذا كان لديك مختلفة
نوع من الخوارزمية،
ربما كنت يمكن أن تعمل
على ثابت.
ولكن خلاصة القول، نحن فقط
المعنية، في هذه اللحظة،
حول التعقيد المتقلب.
والتعقيد المتقلب
من هذه الخوارزمية خطية.
حسنا؟
هذا معقول؟
حسنا.
حتى شخص ما يساعدني على القيام بعمل أفضل.
كيف يمكننا أن نفعل ما هو أفضل؟
كيف يمكننا خفض
التعقيد المتقلب
من بعد واحد
الذروة مكتشف؟
أي شخص يريد
اتخاذ طعنة في ذلك؟
بلى؟
عودة إلى هناك.
الحضور: أ
ثنائي البحث الفرعي.
نظرتم إلى
الأوسط، وأيا كان
هو أعلى-- أيهما الجانب
أعلى، ثم خفض ذلك في نصف،

Chinese: 
因为你知道有一个高峰。
教授：在 -
在右侧 - 
有一个更高的数字
在右侧 - 
那么你会
看看那个，因为你知道
你的高峰在某个地方
在那里。
你继续
切成两半。
教授：太棒了！
优秀！
这是完全正确的。
所以你可以 - 你可以做
不同的东西，其中
本质上是尝试和
打破这个问题。
使用分而治之
战略，并递归突破
这一维
数组到更小的数组中。
并尝试得到这个
复杂性下降。
是吗？
听众：我们假设
只有一个高峰？
教授：不，我们不是。
听众：好的。
教授：找到了
如果存在，则为峰值。
在这种情况下
它是，“找到一个高峰”，
因为这个定义。
我们并不需要
正如讨论过的那样。
好吧？
好。
所以 -
所以这是一个很好的答案，
 - 你知道这堂课
之后
会变得无聊。
对？
每个班都变得无聊。

Arabic: 
لأنك تعرف أن هناك ذروة.
بروفيسر: On--
على الجانب الأيمن--
هناك عدد أكبر
على الجانب الأيمن--
ثم كنت فقط
ننظر إلى ذلك، لأنك تعرف
أن ذروة الخاص في مكان ما
هناك.
وتستمر
قطع في نصف.
أستاذ: ممتاز!
ممتاز!
هذا صحيح تماما.
لذلك يمكنك-- يمكنك القيام به
شيء مختلف، والتي
هو في الأساس محاولة و
تفكيك هذه المشكلة.
استخدام الفجوة وقهر
استراتيجية، وكسر بشكل متكرر
متابعة هذا البعد واحد
صفيف إلى صفائف أصغر.
ومحاولة الحصول على هذا
تعقيد أسفل.
بلى؟
الحضور: هل نحن نفترض
أن هناك ذروة واحدة فقط؟
أستاذ: لا، نحن لسنا كذلك.
الحضور: موافق.
أستاذ: انها تجد
ذروة إذا كان موجودا.
وفي هذه الحالة
انها، "العثور على الذروة"،
بسبب التعريف.
نحن لسنا بحاجة حقا
هذا كما تمت مناقشته.
حسنا؟
حسنا.
وبالتالي--
لذلك كان ذلك إجابة كبيرة،
و - أنت تعرف هذه الفئة
بعد حين
الذهاب للحصول على مملة.
حق؟
كل فئة يحصل مملة.

English: 
because you know there's a peak.
PROFESSOR: On--
AUDIENCE: For example
if you're in the middle
on the right side--
there's a higher number
on the right side--
then you would just
look at that, because you know
that your peak's somewhere
in there.
And you continue
cutting in half.
PROFESSOR: Excellent!
Excellent!
That's exactly right.
So you can-- You can do
something different, which
is essentially try and
break up this problem.
Use a divide and conquer
strategy, and recursively break
up this one dimensional
array into smaller arrays.
And try and get this
complexity down.
Yeah?
AUDIENCE: Are we assuming
that there's only one peak?
PROFESSOR: No, we're not.
AUDIENCE: OK.
PROFESSOR: It's find
a peak if it exists.
And in this case
it's, "find a peak",
because of the definition.
We don't really need
this as it was discussed.
All right?
OK.
So--
So that was a great answer,
and-- You know this class
after while is
going to get boring.
Right?
Every class gets boring.

Arabic: 
لذلك نحن، كما تعلمون، في محاولة و
كسر الرتابة هنا قليلا.
وهكذا-- ثم الآخر
الشيء الذي أدركنا
هو أن هذه المقاعد
كنت جالسا on-- هذا
هو Classroom-- ولكن
المقاعد التي تجلس عليها
هي نوع من الصعب.
حق؟
لذلك ما إيريك وأنا
هل قررنا
ونحن سوف تساعدك على الرجال
ولا سيما تلك
الذين هم - الذين هم
والتفاعل معنا.
ولدينا هذه -
[ضحك]
--سائد ذلك
هي 6.006 وسائد.
وكما تعلمون، هذا هو 2
2 بواسطة 2 مكعب روبيك هنا.
ومنذ أن أجبت الأول
السؤال، يمكنك الحصول على وسادة.
هذا هو نوع من مثل
الفريسبي، ولكن ليس حقا.
وبالتالي--
[ضحك]
لست متأكدا - لست متأكدا
أنا ذاهب للحصول عليه لك.
ولكن الآخر
شيء أريد أن أقول
هذه ليست لعبة البيسبول.
حق؟
حيث كنت مجرد الاستيلاء على
الكرة كما يأتي من قبل.
وهذا يعني له، يا
صديق في القميص الأحمر.
حتى هنا تذهب.
آه سيئة للغاية.
حسنا.
انها ناعمة.
لذلك، كما تعلمون، انها فازت ذلك
لن تؤذي لك إذا يضرب لك.
[ضحك]
حسنا.
لذلك حصلنا على مجموعة من هذه.
ورفع يديك،
كما تعلمون، الذهاب

English: 
So we, you know, try and
break the monotony here a bit.
And so-- And then the other
thing that we realized
was that these seats
you're sitting on-- this
is a nice classroom-- but
the seats you're sitting on
are kind of hard.
Right?
So what Eric and I
did was we decided
we'll help you guys
out, especially the ones
who are-- who are
interacting with us.
And we have these--
[LAUGHTER]
--cushions that
are 6.006 cushions.
And, you know, that's a 2
by 2 by 2 Rubik's cube here.
And since you answered the first
question, you get a cushion.
This is kind of like a
Frisbee, but not really.
So--
[LAUGHTER]
I'm not sure-- I'm not sure
I'm going to get it to you.
But the other
thing I want to say
is this is not a baseball game.
Right?
Where you just grab the
ball as it comes by.
This is meant for him, my
friend in the red shirt.
So here you go.
Ah, too bad.
All right.
It is soft.
So, you know, it won't-- it
won't hurt you if hits you.
[LAUGHTER]
All right.
So we got a bunch of these.
And raise your hands,
you know, going

Chinese: 
所以我们，你知道，试试吧
这里稍微打破单调。
所以 - 然后是另一个
我们意识到的事情
是这些座位
你坐在 - 这个
是一个很好的教室 - 但
你坐的座位
有点困难。
对？
那么，Eric和我
我们做了决定
我们会帮助你们
特别是那些
谁是 - 谁是谁
与我们互动。
我们有这些 -
[笑声]
- 缓冲
是6.006个靠垫。
而且，你知道，这是一个2
由2个2魔方在这里。
而且你从第一个回答
问题，你会得到一个缓冲。
这有点像一个
飞盘，但不是真的。
所以 -
[笑声]
我不确定 - 我不确定
我要把它给你。
但另一个
我想说的事情
这不是棒球比赛吗？
对？
你在哪里抓住了
球，因为它来了。
这是为了他，我的
红衬衫的朋友。
所以，你走了。
啊，太糟糕了。
好吧。
它很柔软。
所以，你知道，它不会 - 它
如果击中你，不会伤害你。
[笑声]
好吧。
所以我们得到了一堆这些。
并举起你的手，
你知道，去

Arabic: 
أن يسأل-- هناك
أن أكون - أعتقد - هناك
بعض الأسئلة التافهة التي
ونحن سوف تسأل فقط
للتأكد من أنك مستيقظا.
لذلك جواب على ذلك
لا تحصل على وسادة.
ولكن إجابة مثل -
ما اسمك؟
الحضور: مطاردة.
بروفيسور: تشيس.
جواب مثل
تشيس أعطى للتو هو -
هذه إجابة جيدة
سؤال غير هام.
أن يحصل لك وسادة.
حسنا؟
كل الحق، عظيم.
لذلك دعونا طرح من قبل
خوارزمية تشيس هنا.
أنا ذاهب لكتابة ذلك
خارج للنسخة 1D.
 
لذلك ما لدينا هنا هو
خوارزمية متكررة.

Chinese: 
问 - 有进展
是 - 我想 - 有
一些微不足道的问题
我们会问
确保你清醒。
所以这是一个答案
没有给你一个缓冲。
但是，像 - 
你叫什么名字？
听众：追逐。
教授：大通。
像这样的答案
蔡斯刚刚给了 -
这是一个很好的答案
一个不平凡的问题。
这会让你有一个缓冲。
好？
好，很好。
所以让我们忍受一下
Chase的算法在这里。
我要写它
为1D版本。
 
所以我们在这里有
递归算法。

English: 
to ask-- There's going
to be-- I think-- There's
some trivial questions that
we're going to ask just
to make sure you're awake.
So an answer to that
doesn't get you a cushion.
But an answer like--
What's your name?
AUDIENCE: Chase.
PROFESSOR: Chase.
An answer like
Chase just gave is--
that's a good answer to
a nontrivial question.
That gets you a cushion.
OK?
All right, great.
So let's put up by
Chase's algorithm up here.
I'm going to write it
out for the 1D version.
So what we have here is
a recursive algorithm.

Chinese: 
 
所以你想要的图片
保持在你的脑海
这张照片
我放在那里。
这是一个分歧
并征服算法。
你会看到这一切
并在此 - 这种范式 -
6.006一遍又一遍。
我们将看看
n超过2位。
 
我们将会
向左看，
我们会去的
向右看。
我们将会
按顺序进行。
所以 -
 
- 如果超过2小于
超过2减1，则 -
- 只看左边一半。
 

Arabic: 
 
وبالتالي فإن الصورة التي تريدها
للحفاظ على في رأسك
هي هذه الصورة
أن أضع هناك.
وهذا هو الانقسام
وقهر خوارزمية.
أنت ذاهب لرؤية هذا أكثر
وأكثر - هذا النموذج -
مرارا وتكرارا في 6.006.
نحن بصدد النظر في
ن أكثر من 2 موقف.
 
ونحن ذاهبون إلى
انظر إلى اليسار،
ونحن ذاهبون إلى
ننظر إلى اليمين.
ونحن ذاهبون إلى
تفعل ذلك في تسلسل.
وبالتالي--
 
- إذا كان أكثر من 2 هو أقل من
أكثر من 2 ناقص 1، ثم -
- انظر فقط في النصف الأيسر.
 

English: 
So the picture you want
to keep in your head
is this picture
that I put up there.
And this is a divide
and conquer algorithm.
You're going to see this over
and over-- this paradigm--
over and over in 6.006.
We're going to look at
the n over 2 position.
And we're going to
look to the left,
and we're going to
look to the right.
And we're going to
do that in sequence.
So--
--if a n over 2 is less than
a n over 2 minus 1, then--
--only look at the left half.

English: 
1 through n over 2 minus 1 to
look for peak-- for a peak.
All right?
So that's step one.
And you know I could
put it on the right hand
side or the left hand side,
doesn't really matter.
I chose to do the left hand
side first, the left half.
And so what I've done is,
through that one step,
if in fact you have that
condition-- a n over 2
is less than a n over 2 minus
1-- then you move to your left
and you work on one
half of the problem.
But if that's not the case,
then if n over-- n over 2
is less than a over n
over-- n by 2 plus 1,
then only look at n over 2
plus 1 through n for a peak.
So I haven't bothered
writing out all the words.

Arabic: 
1 إلى n أكثر من 2 ناقص 1 إلى
ابحث عن الذروة - لذروة.
 
حسنا؟
هذه هي الخطوة الأولى.
وأنت تعرف أنني يمكن
وضعه على اليد اليمنى
الجانب أو الجانب الأيسر،
لا يهم حقا.
اخترت أن تفعل اليد اليسرى
الجانب الأول، النصف الأيسر.
وهكذا ما فعلته هو،
من خلال تلك الخطوة،
إذا كان لديك في الواقع ذلك
الشرط - أكثر من 2
أقل من 2 ناقص
1-- ثم يمكنك الانتقال إلى اليسار
وكنت تعمل على واحد
نصف المشكلة.
ولكن إذا لم يكن الأمر كذلك،
ثم إذا n فوق-- n أكثر من 2
أقل من أكثر من n
over-- n بواسطة 2 زائد 1،
ثم ننظر فقط في ن أكثر من 2
زائد 1 إلى n للذروة.
لذلك لم أزعج
كتابة كل الكلمات.

Chinese: 
1到n超过2减1到
寻找高峰 - 寻找高峰。
 
好吧？
所以这是第一步。
你知道我可以
把它放在右边
侧面或左侧，
并不重要。
我选择了左手
方先，左方。
所以我所做的是，
通过这一步，
如果实际上你有这个
条件 - 超过2
小于2以上
1--然后你移到你的左边
和你一起工作
一半的问题。
但如果情况并非如此，
那么如果n超过2，则超过2
小于n以上
超过n加2加1，
那么只能看n超过2
峰值加1到n。
所以我没有打扰过
写出所有的单词。

Chinese: 
他们完全一样
作为左手边。
你只是期待
右边。
否则，如果这两个
条件不开火，
你真的完成了。
好？
这实际上是最好的情况
在早期整理方面，
至少在这个递归的步骤中。
因为现在n过了
2位是一个高峰。
 
因为你发现的是
即n超过2的位置
大于或等于
两个相邻的位置，
而这正是
峰值的定义。
所以你完成了。
好？
所以这一切都很好。
你想写一个参数
这个算法是正确的。
我不会去的
为此而烦恼。
我只是挥了挥手
位，你们都点了点头，

English: 
They're exactly the same
as the left hand side.
You just look to
the right hand side.
Otherwise if both of these
conditions don't fire,
you're actually done.
OK?
That's actually the best case
in terms of finishing early,
at least in this recursive step.
Because now the n over
2 position is a peak.
Because what you found is
that the n over 2 position
is greater than or equal to
both of its adjacent positions,
and that's exactly the
definition of a peak.
So you're done.
OK?
So all of this is good.
You want to write an argument
that this algorithm is correct.
And I'm not going
to bother with that.
I just wave my hands a
bit, and you all nodded,

Arabic: 
انهم بالضبط نفس الشيء
كما الجانب الأيسر.
كنت مجرد إلقاء نظرة على
على الجانب الأيمن.
وإلا إذا كان كل من هذه
الظروف لا النار،
كنت فعلت فعلا.
حسنا؟
هذا هو في الواقع أفضل حالة
من حيث الانتهاء في وقت مبكر،
على الأقل في هذه الخطوة العودية.
لأن الآن أكثر من n
2 موقف هو الذروة.
 
لأن ما وجدت هو
أن ن أكثر من 2 الموقف
أكبر من أو يساوي
سواء من مواقعها المتاخمة،
وهذا بالضبط
تعريف الذروة.
لذلك الانتهاء من ذلك.
حسنا؟
لذلك كل هذا أمر جيد.
تريد كتابة حجة
أن هذه الخوارزمية صحيحة.
وأنا لن أذهب
إلى عناء مع ذلك.
أنا مجرد موجة يدي أ
بت، ولكم جميعا بالرصاص،

English: 
so we're done with that.
But the point being you
will see in your problem set
a precise argument for a more
complicated algorithm, the 2D
version of this.
And that should be a template
for you to go write a proof,
or an argument, a
formal argument,
that a particular
algorithm is correct.
That it does what
it claims to do.
And in this case it's two,
three lines of careful reasoning
that essentially say, given
the definition of the peak,
that this is going to
find a peak in the array
that you're given.
All right?
So we all believe that
this algorithm is correct.
Let's talk now about the
complexity of this algorithm.
Because the whole
point of this algorithm
was because we didn't
like this theta
n complexity corresponding to
the straightforward algorithm.
So it'd like to do better.

Arabic: 
لذلك نحن القيام به مع ذلك.
ولكن النقطة التي أنت
سوف نرى في مجموعة مشكلتك
حجة دقيقة لأكثر من ذلك
خوارزمية معقدة، 2D
نسخة من هذا.
وينبغي أن يكون هذا النموذج
بالنسبة لك للذهاب كتابة دليل،
أو حجة، أ
حجة رسمية،
أن معينة
الخوارزمية صحيحة.
أن يفعل ما
أنها تدعي أن تفعل.
وفي هذه الحالة انها اثنين،
ثلاثة خطوط من التفكير الدقيق
التي تقول أساسا، نظرا
تعريف الذروة،
أن هذا هو الذهاب الى
العثور على ذروة في مجموعة
أن كنت تعطى.
حسنا؟
لذلك نحن جميعا نعتقد ذلك
هذه الخوارزمية صحيحة.
دعونا نتحدث الآن عن
تعقيد هذه الخوارزمية.
لأن الكل
نقطة من هذه الخوارزمية
لأننا لم نفعل ذلك
مثل هذا ثيتا
n تعقيد المقابلة
خوارزمية واضحة.
لذلك تريد أن تفعل أفضل.

Chinese: 
所以我们完成了。
但重要的是你
将在您的问题集中看到
一个更精确的论点
复杂的算法，2D
这个版本。
这应该是一个模板
为你去写证明，
或一个论点，一个
正式论证，
一个特定的
算法是正确的。
它做什么
它声称要这样做。
在这种情况下，它是两个，
三条细致的推理
从本质上讲，给出
峰值的定义，
这是要做的
在阵列中找到峰值
你得到了。
好吧？
所以我们都相信
这个算法是正确的。
现在我们来谈谈这个问题
这个算法的复杂性。
因为整体
这个算法的一点
是因为我们没有
像这个theta
n的复杂性对应于
简单的算法。
所以它想要做得更好。

Chinese: 
 
所以我想要什么
做就是问你们其中一个
给我一个复发的关系
那种，你知道，T的n
等于等等，等等，等等。
这将对应于
这个递归算法，
这个鸿沟和
征服算法。
然后使用它，我想
去实际的复杂性
根据什么θ
的复杂性对应。
是吗？
回到那里？
观众：所以最糟糕的
案例情景如果T的n
将会是一些
恒定的时间 -
教授：是的。
听众： - 需要
调查是否有一定的
元素是[INAUDIBLE]，加上 -
[咳嗽]
- 超过2的n？
教授：太好了。
非常正确。
这是完全正确的。
所以，如果你看看这个
算法，你说，

English: 
So what I'd like to
do is ask one of you
to give me a recurrence relation
of the kind, you know, T of n
equals blah, blah, blah.
That would correspond to
this recursive algorithm,
this divide and
conquer algorithm.
And then using that, I'd like
to get to the actual complexity
in terms of what the theta
of complexity corresponds to.
Yeah?
Back there?
AUDIENCE: So the worst
case scenario if T of n
is going to be some
constant amount of time--
PROFESSOR: Yep.
AUDIENCE: --it takes to
investigate whether a certain
element is [INAUDIBLE], plus--
[COUGH]
--T of n over 2?
PROFESSOR: Great.
Exactly right.
That's exactly right.
So if you look at this
algorithm and you say,

Arabic: 
 
لذا ما أود
هل نسأل واحد منكم
أن تعطيني علاقة تكرار
من هذا النوع، كما تعلمون، T من n
يساوي بلاه، بلاه، بلاه.
وهذا يتفق مع
هذه الخوارزمية العودية،
هذا الانقسام و
خوارزمية قهر.
ثم استخدم ذلك، أود
للوصول إلى التعقيد الفعلي
من حيث ما ثيتا
من التعقيد يتوافق.
بلى؟
العودة إلى هناك؟
الحضور: لذلك أسوأ
سيناريو الحالة إذا كان T من n
سوف يكون بعض
كمية ثابتة من الوقت -
أستاذ: نعم.
الحضور: --it يأخذ ل
التحقيق في ما إذا كان معين
العنصر [غير مسموع]، زائد -
[سعال]
--T من n أكثر من 2؟
أستاذ: عظيم.
صحيح تماما.
هذا صحيح تماما.
لذلك إذا نظرتم إلى هذا
خوارزمية وتقول،

English: 
from a computation
standpoint, can I
write an equation
corresponding to the execution
of this algorithm?
And you say, T of n is the work
that this algorithm does on--
as input of size n.
OK?
Then I can write this equation.
And this theta 1 corresponds
to the two comparisons
that you do looking at--
potentially the two comparisons
that you do-- looking
at the left hand
side and the right hand side.
So that's-- 2 is a constant,
so that's why we put theta 1.
All right?
So you get a cushion, too.
Watch out guys.
Whoa!
Oh actually that wasn't so bad.
Good.
Veers left, Eric.
Veers left.

Arabic: 
من حساب
وجهة نظر، يمكنني
اكتب معادلة
المقابلة للتنفيذ
من هذه الخوارزمية؟
وتقول، T من ن هو العمل
أن هذه الخوارزمية تعمل على -
كمدخلات من حجم n.
حسنا؟
 
ثم أستطيع كتابة هذه المعادلة.
 
وهذا ثيتا 1 يتوافق
إلى المقارنتين
التي كنت تبحث في -
وربما مقارنتين
التي كنت do-- يبحث
في اليد اليسرى
الجانب والجانب الأيمن.
لذلك أن's-- 2 هو ثابت،
لذلك هذا هو السبب في وضع ثيتا 1.
حسنا؟
حتى تحصل على وسادة، أيضا.
احترس من الرجال.
قف!
أوه في الواقع أن لم يكن سيئا للغاية.
جيد.
ترك فيرس، اريك.
ترك فيرس.

Chinese: 
从计算
立场，我可以
写一个方程
对应于执行
这个算法？
你说，n的T是工作
这个算法在做什么 -
作为大小为n的输入。
好？
 
然后我可以写出这个等式。
 
而这个theta 1相应
到两个比较
你看着 - 
潜在的两个比较
你确实 - 看起来
在左边
侧面和右侧。
所以那2是一个常数，
所以这就是为什么我们把theta 1。
好吧？
所以你也得到一个垫子。
小心家伙。
哇！
哦，其实并没有那么糟糕。
好。
韦尔斯离开了，埃里克。
Veers离开了。

Chinese: 
所以如果你拿这个和
你开始扩展它，
最终你会走
去基地
情况，这是T
1是theta 1。
对？
因为你有一个元素
阵列你只是为该阵列
它只是要
作为高峰返回。
如果你这样做，那么
你完全展开它，
那么你可以写T的n
等于θ1加上θ1。
你会这样做
登录到n次的基数2。
并添加这些
所有的，给你
n的复杂性theta log 2。
对？
所以现在你比较
这与此。
真的
巨大的差异。
有一个指数
区别。

Arabic: 
حتى إذا كنت تأخذ هذا و
بدء توسيعه،
في نهاية المطاف أنت ذاهب
للوصول إلى القاعدة
الحالة، وهو T
من 1 هو ثيتا 1.
حق؟
لأن لديك عنصر واحد
صفيف لك فقط لتلك المجموعة
انها مجرد الذهاب الى
عودة ذلك كذروة.
وهكذا إذا كنت تفعل ذلك، و
يمكنك توسيع كل وسيلة للخروج،
ثم يمكنك كتابة T من n
يساوي ثيتا 1 زائد ثيتا 1.
وأنت تسير على القيام بذلك
سجل إلى القاعدة 2 من n مرات.
وإضافة هذه
كل شيء، يمنحك
تعقيد ثيتا سجل 2 من n.
حق؟
حتى الآن تقارن
هذا مع ذلك.
وهناك حقا
فرقا كبيرا.
هناك أسي
فرق.

English: 
So if you take this and
you start expanding it,
eventually you're going
to get to the base
case, which is T
of 1 is theta 1.
Right?
Because you have a one element
array you just for that array
it's just going to
return that as a peak.
And so if you do that, and
you expand it all the way out,
then you can write T of n
equals theta 1 plus theta 1.
And you're going to do this
log to the base 2 of n times.
And adding these
all up, gives you
a complexity theta log 2 of n.
Right?
So now you compare
this with that.
And there's really
a huge difference.
There's an exponential
difference.

English: 
If you coded up this
algorithm in Python--
and I did-- both these
algorithms for the 1D version--
and if you run it on n
being 10 million or so,
then this algorithm
takes 13 seconds.
OK?
The-- The theta 10
algorithm takes 13 seconds.
And this one takes
0.001 seconds.
OK?
Huge difference.
So there is a big difference
between theta n and theta log
n.
It's literally the difference
between 2 raised to n, and n.
It makes sense to try
and reduce complexity
as you can see,
especially if you're
talking about large inputs.
All right?
And you'll see that
more clearly as we
go to a 2D version
of this problem.
All right?
So you can't really
do better for the 1D.
The 1D is a
straightforward problem.
It gets a little
more interesting--

Chinese: 
如果你编码了这个
Python中的算法 -
我确实 - 这两个
1D版本的算法 -
如果你在n上运行它
1000万左右，
那么这个算法
需要13秒。
好？
Theta 10
算法需要13秒。
这一个需要
0.001秒。
好？
巨大的差异。
所以有很大的不同
在theta n和theta日志之间
ñ。
这实际上是差异
介于2到n之间，n。
尝试是有道理的
并降低复杂性
如你看到的，
特别是如果你是
谈论大量投入。
好吧？
你会看到的
与我们一样更清楚
转到2D版本
这个问题。
好吧？
所以你不能真的
为1D做得更好。
一维是一个
直截了当的问题。
它变得有点
更有意思的 -

Arabic: 
إذا قمت بتشفير هذا
خوارزمية في بيثون -
وأنا فعلت - كلاهما
خوارزميات للنسخة 1D -
وإذا قمت بتشغيله على n
ويجري 10 ملايين أو نحو ذلك،
ثم هذه الخوارزمية
يستغرق 13 ثانية.
حسنا؟
the-- ثيتا 10
خوارزمية يأخذ 13 ثانية.
وهذا يأخذ واحد
0.001 ثانية.
حسنا؟
فرق كبير.
لذلك هناك فرق كبير
بين ثيتا n و ثيتا السجل
ن.
انها حرفيا الفرق
بين 2 رفع إلى n، n.
من المنطقي أن نحاول
والحد من التعقيد
كما ترى،
خاصة إذا كنت
الحديث عن المدخلات الكبيرة.
حسنا؟
وسترى ذلك
أكثر وضوحا كما نحن
انتقل إلى نسخة 2D
من هذه المشكلة.
حسنا؟
لذلك لا يمكنك حقا
تفعل أفضل ل 1 D.
و 1 D هو
مشكلة واضحة.
فإنه يحصل قليلا
أكثر إثارة للاهتمام -

Arabic: 
المشاكل الحصول على
قليلا - عفوا،
الخوارزميات الحصول على
قليلا أكثر تطورا
عندما ننظر إلى 2D
نسخة من الذروة النتيجة.
لذلك دعونا نتحدث عن
النسخة 2D.
 
حتى يمكنك أن تتخيل
في النسخة 2D
لديك مصفوفة، أو
مصفوفة ثنائية الأبعاد.
 
وسنقول هذا الشيء
يحتوي على الصفوف والأعمدة م.
 
والآن علينا أن
تحديد ما هي الذروة.
وانها تلة.
انها واضحة
تعريف الذروة.
حتى إذا كان لديك في
هنا، ج، ب، د، ه.

Chinese: 
问题得到了解决
小 - 对不起，
算法得到一个
更复杂一点
当我们看2D时
峰值发现版本。
所以让我们来谈谈
2D版本。
 
所以你可以想像
在2D版本中
你有一个矩阵，或者一个
二维数组。
 
我们会说这件事
有n行和m列。
 
现在我们必须
定义什么是峰值。
这是一座山。
这是显而易见的
峰值的定义。
所以，如果你有一个
这里，c，b，d，e。

English: 
the problems get a
little-- excuse me,
the algorithms get a
little more sophisticated
when we look at a 2D
version of peak finding.
So let's talk about
the 2D version.
So as you can imagine
in the 2D version
you have a matrix, or a
two dimensional array.
And we'll say this thing
has n rows and m columns.
And now we have to
define what a peak is.
And it's a hill.
It's the obvious
definition of a peak.
So if you had a in
here, c, b, d, e.

English: 
Then as you can guess, a is
a 2D peak if, and only if,
a greater than or equal to b;
a greater than or equal to d, c
and e.
All right?
So it's a little hill up there.
All right?
And again I've used the
greater than or equal to here,
so that's similar to
the 1D in the case
that you'll always find
a peak in any 2D matrix.
Now again I'll give you the
straightforward algorithm,
and we'll call it the
Greedy Ascent algorithm.
And the Greedy Ascent algorithm
essentially picks a direction
and, you know, tries to
follow that direction in order
to find a peak.

Arabic: 
ثم كما يمكنك تخمين، هو
ذروة 2D إذا، وفقط إذا،
أكبر من أو يساوي b؛
أكبر من أو يساوي d، c
ه.
حسنا؟
حتى انها تلة صغيرة هناك.
حسنا؟
ومرة أخرى لقد استخدمت
أكبر من أو يساوي هنا،
بحيث تشبه
و 1 D في هذه الحالة
التي ستجد دائما
ذروة في أي مصفوفة 2D.
 
الآن مرة أخرى سأعطيك
خوارزمية واضحة،
وسوف نسميها
خوارزمية الصعود الجشع.
 
وخوارزمية الصعود الجشع
يختار أساسا الاتجاه
و، كما تعلمون، يحاول
اتبع هذا الاتجاه في النظام
للعثور على الذروة.

Chinese: 
然后，你可以猜到，一个是
一个二维峰值如果且仅当，
大于或等于b;
大于或等于d，c
和e。
好吧？
所以这是一个小山丘。
好吧？
我再次使用了
大于或等于这里，
所以这很类似
在案例中的1D
你会一直发现
任何2D矩阵中的峰值。
 
现在我再次给你
直截了当的算法，
我们会把它称之为
贪婪的Ascent算法。
 
贪心Ascent算法
基本上选择一个方向
并且，你知道，试图
按顺序遵循该方向
找到一个高峰。

Arabic: 
على سبيل المثال، إذا كنت
كان هذا خاص -
--مصفوفة؛ 14، 13،
12، 15، 9، 11، 17--
 
ثم ما قد يحدث هو إذا
بدأت في بعض التعسفية
منتصف - لذلك
خوارزمية الصعود الجشع
لديها لجعل الخيارات
إلى أين تبدأ.
تماما كما كان لدينا
حالات مختلفة هنا،
لديك لاتخاذ خيار
إلى أين تبدأ.
قد ترغب في ذلك
تبدأ في الوسط،
وقد ترغب في ذلك
العمل طريقك اليسار الأول.
أو أنت ذاهب إلى جميع -
كنت مجرد الاستمرار يسارا،
لدينا الاستمرار في الاتجاه الصحيح.
وإذا كنت ضرب
حافة، تذهب إلى أسفل.
لذلك جعل بعض الخيارات كما
إلى ما الاجتياز الافتراضي
الاتجاهات هي.
وهكذا إذا كنت أقول لك
تريد أن تبدأ مع 12،
أنت ذاهب للذهاب نظرة
لشيء ما إلى اليسار.
وإذا كان أكبر من، كنت
الذهاب لمتابعة هذا الاتجاه.

English: 
So for example, if I
had this particular--
--matrix; 14, 13,
12, 15, 9, 11, 17--
Then what might happen is if
I started at some arbitrary
midpoint-- So the
Greedy Ascent algorithm
has to make choices
as to where to start.
Just like we had
different cases here,
you have to make a choice
as to where to start.
You might want to
start in the middle,
and you might want to
work your way left first.
Or you're going to all--
You just keep going left,
our keep going right.
And if you hit an
edge, you go down.
So you make some choices as
to what the default traversal
directions are.
And so if you say you
want to start with 12,
you are going to go look
for something to left.
And if it's greater than, you're
going to follow that direction.

Chinese: 
例如，如果我
有这个特别的 -
- 矩阵; 14日，13日，
12，15，9，11，17  -
 
那么可能发生的是如果
我开始了一些任意的
中点 - 所以
贪婪的Ascent算法
必须做出选择
至于从哪里开始。
就像我们一样
这里的不同情况，
你必须做出选择
至于从哪里开始。
你可能想要
从中间开始，
你可能想要
先走你的路。
或者你会全部 - 
你只是继续向左走，
我们保持正确。
如果你打了一个
边缘，你往下走。
所以你做出一些选择
到默认的遍历
方向是。
所以如果你说你
想要从12开始，
你会去看看
留下一些东西。
如果它大于，你就是
将遵循这个方向。

Arabic: 
إذا لم يكن كذلك، إذا كان
أقل، ثم أنت
الذهاب للذهاب في الآخر
الاتجاه، في هذه الحالة،
فمثلا.
لذلك في هذه الحالة سوف تذهب إلى
12، 13، 14، 15، 16، 17، 19،
و 20.
وكنت تجد-- لك
'د العثور على هذه الذروة.
الآن أنا لم أعطيك
تفاصيل محددة
من خوارزمية الصعود الجشع.
ولكن أعتقد إذا نظرتم
أسوأ الاحتمالات
هنا، مع الاحترام
إلى مصفوفة معينة،
ولأي معين
نقطة البداية،
ولأي استراتيجية معينة - في
شروط اختيار اليسار الأول،
مقابل اليمين أولا، أو لأسفل
أولا مقابل الأول -
سيكون لديك
الوضع حيث-- فقط
مثل كان لدينا في 1D
case-- قد ينتهي بك الأمر

English: 
If it's not, if it's
less, then you're
going to go in the other
direction, in this case,
for example.
So in this case you'll go to
12, 13 , 14, 15, 16, 17, 19,
and 20.
And you'd find-- You
'd find this peak.
Now I haven't given you
the specific details
of a Greedy Ascent algorithm.
But I think if you look at
the worst case possibilities
here, with respect
to a given matrix,
and for any given
starting point,
and for any given strategy-- in
terms of choosing left first,
versus right first, or down
first versus up first--
you will have a
situation where-- just
like we had in the 1D
case-- you may end up

Chinese: 
如果不是，如果是
少，那你就是
去另一个去
方向，在这种情况下，
例如。
所以在这种情况下，你会去
12，13，14，15，16，17，19，
和20。
你会发现 - 你
'找到这个高峰。
现在我还没有给你
具体细节
贪婪Ascent算法。
但我想如果你看看
最糟糕的情况
在这里，尊重
到给定的矩阵，
并为任何给定的
初始点，
并为任何给定的策略 - 在
先选择条件，
与之对立，或者向下
首先与首先 -
你会有一个
在哪里 - 只是
就像我们在1D中一样
案件 - 你可能会结束

Arabic: 
لمس جزء كبير من
العناصر في هذه المجموعة 2D.
حسنا؟
لذلك في هذه الحالة، نحن
انتهى، كما تعلمون،
لمس حفنة من
عناصر مختلفة.
ومن الممكن جدا أن
هل يمكن أن ينتهي في نهاية المطاف لمس -
بدءا من نقطة الوسط -
هل يمكن أن تصل لمس النصف
والعناصر، وفي بعض الحالات،
لمس جميع العناصر.
حتى إذا كنت تفعل أسوأ حالة
تحليل هذه الخوارزمية -
خوارزمية معينة مع
خيارات معينة من حيث الشروط
من نقطة البداية و
اتجاه البحث -
خوارزمية الصعود الجشع
يكون ثيتا نم تعقيد.
حسنا؟
وفي الحالة حيث n
يساوي m، أو m يساوي n،
كنت قد ثيتا ن
مربع التعقيد.
حسنا؟
أنا لن تنفق جدا
الكثير من الوقت على هذا،
لأنني أريد أن أتحدث
لك عن الانقسام
وقهر الإصدارات من هذا
خوارزمية للذروة 2D.

English: 
touching a large fraction of
the elements in this 2D array.
OK?
So in this case, we
ended up, you know,
touching a bunch of
different elements.
And it's quite possible that
you could end up touching--
starting from the midpoint--
you could up touching half
the elements, and in some cases,
touching all the elements.
So if you do a worst case
analysis of this algorithm--
a particular algorithm with
particular choices in terms
of the starting point and
the direction of search--
a Greedy Ascent algorithm would
have theta n m complexity.
All right?
And in the case where n
equals m, or m equals n,
you'd have theta n
squared complexity.
OK?
I won't spend very
much time on this,
because I want to talk
to you about the divide
and conquer versions of this
algorithm for the 2D peak.

Chinese: 
触摸很大一部分
这个二维数组中的元素。
好？
所以在这种情况下，我们
最后，你知道，
触摸一堆
不同的元素。
这很有可能
你最终可能会感动 -
从中点开始 - 
你可以接触一半
元素，在某些情况下，
触及所有元素。
所以，如果你做了一个最坏的情况
该算法的分析 -
一个特定的算法
特别的选择
的起点和
搜索的方向 -
一个贪婪的Ascent算法会
具有nm的复杂性。
好吧？
而在n的情况下
等于m，或m等于n，
你会有theta n
平方复杂性。
好？
我不会花很多钱
在这个很多时间，
因为我想说话
给你分享
并征服这个版本
二维峰值算法。

English: 
But hopefully you're
all with me with respect
to what the worst
case complexity is.
All right?
People buy that?
Yeah.
Question back there.
AUDIENCE: Can you-- Is
that an approximation?
Or can you actually get
to n times m traversals?
PROFESSOR: So there are specific
Greedy Ascent algorithms,
and specific matrices
where, if I give you
the code for the algorithm, and
I give you a specific matrix,
that I could make you touch
all of these elements.
That's correct.
So we're talking
about worst case.
You're being very
paranoid when you
talk about worst
case complexity.
And so I'm-- hand
waving a bit here,
simply because I haven't
given you the specifics
of the algorithm yet.
Right?
This is really a
set of algorithms,
because I haven't
given you the code,
I haven't told you
where it starts,
and which direction it goes.
But you go, do
that, fix it, and I
would be the person who tries to
find the worst case complexity.
Suddenly it's very
easy to get to theta n

Chinese: 
但希望你是
所有与我的尊重
到什么最糟糕的
案件的复杂性是。
好吧？
人们买那个？
是啊。
问题回到那里。
听众：你可以 - 是
那近似？
或者你真的可以得到
到n次m遍历？
教授：所以有具体的
贪心Ascent算法，
和特定的矩阵
在哪里，如果我给你
该算法的代码和
我给你一个特定的矩阵，
我可以让你接触
所有这些元素。
这是正确的。
所以我们在说话
关于最坏的情况。
你很好
当你偏执
谈论最糟糕的
情况复杂。
所以我是 - 手
在这里挥舞一下，
仅仅因为我没有
给你具体细节
的算法呢。
对？
这真的是
算法集合，
因为我没有
给你的代码，
我没有告诉过你
它开始的地方，
以及它走向哪个方向。
但你去吧，做
那修理它和我
将是那些试图去做的人
发现最坏情况的复杂性。
突然它是非常
容易得到theta n

Arabic: 
ولكن نأمل كنت
مع كل الاحترام
إلى ما أسوأ
حالة التعقيد هو.
حسنا؟
الناس شراء ذلك؟
بلى.
السؤال مرة أخرى هناك.
الحضور: هل يمكنك - هل
أن تقريب؟
أو يمكن أن تحصل في الواقع
إلى ن مرات اجتياز؟
أستاذ: لذلك هناك محددة
خوارزميات الصعود الجشع،
ومصفوفات محددة
حيث، إذا كنت أعطيك
رمز الخوارزمية، و
أعطيكم مصفوفة محددة،
التي يمكن أن تجعلك تعمل باللمس
كل هذه العناصر.
هذا صحيح.
لذلك نحن نتحدث
حول أسوأ حالة.
كنت يجري جدا
بجنون العظمة عندما كنت
الحديث عن أسوأ
تعقيد الحالة.
وهكذا I'm-- اليد
يلوح قليلا هنا،
لمجرد أنني لم
تعطيك تفاصيل
من الخوارزمية حتى الآن.
حق؟
هذا هو حقا
مجموعة من الخوارزميات،
لأنني لم
نظرا لك رمز،
أنا لم أخبرك
حيث يبدأ،
وأي اتجاه يذهب.
ولكن تذهب، تفعل
أن، إصلاحه، وأنا
سيكون الشخص الذي يحاول
تجد أسوأ تعقيد الحالة.
فجأة انها جدا
من السهل الحصول على ثيتا ن

Arabic: 
م من حيث وجود بعض
ثابت ضرب n مرات م.
ولكن يمكنك بالتأكيد
الحصول على ذلك ثابت
كونها قريبة جدا من 1.
حسنا؟
إن لم يكن 1.
حسنا.
لذلك دعونا نتحدث عن
فرق تسد.
ودعونا نقول ذلك
فعلت شيئا
مثل هذا، حيث حاولت للتو
لمربى البحث الثنائي
الخوارزمية في النسخة 2D.
حسنا؟
 
لذلك ما سأفعله هو -
--I'm الذهاب لاختيار الوسط
العمود، j يساوي m أكثر من 2.

Chinese: 
米有一些
不断乘以n次m。
但你绝对可以
得到那个常数
非常接近1。
好？
如果不是1。
好吧。
所以让我们来谈谈
分而治之。
让我们这样说
我做了一些事情
像这样，我刚刚尝试过
堵塞二进制搜索
算法转换为2D版本。
好吧？
 
所以我要做的是 -
- 我会选择中间的
列，j等于m超过2。

English: 
m in terms of having some
constant multiplying n times m.
But you can definitely
get to that constant
being very close to 1.
OK?
If not 1.
All right.
So let's talk about
divide and conquer.
And let's say that
I did something
like this, where I just tried
to jam the binary search
algorithm into the 2D version.
All right?
So what I'm going to do is--
--I'm going to pick the middle
column, j equals m over 2.

Arabic: 
وانا ذاهب الى
العثور على 1D الذروة باستخدام
مهما خوارزمية أريد.
وأنا ربما ينتهي استخدام
خوارزمية أكثر كفاءة،
البحث الثنائي
الإصدار الذي ذهب
على طول الطريق إلى اليسار
من المجلس هناك.
ودعونا نقول أجد
ثنائي الذروة في (ط، ي).
لأنني اخترت عمود،
وأنا مجرد إيجاد 1D الذروة.
 
هذا هو j يساوي م أكثر من 2.
هذا أنا.
الآن أستخدم (i، j).
على وجه الخصوص صف i كبدء -
- العثور على 1D الذروة على صف ط.
 
وأنا أقف هنا،
أنا سعيد حقا.
حسنا؟
لأنني أقول، نجاح باهر.
اخترت العمود الأوسط،
لقد وجدت 1D الذروة،

English: 
And I'm going to
find a 1D peak using
whatever algorithm I want.
And I'll probably end up using
the more efficient algorithm,
the binary search
version that's gone
all the way to the left
of the board there.
And let's say I find a
binary peak at (i, j).
Because I've picked a column,
and I'm just finding a 1D peak.
So this is j equals m over 2.
That's i.
Now I use (i,j).
In particular row i as a start--
--to find a 1D peak on row i.
And I stand up here,
I'm really happy.
OK?
Because I say, wow.
I picked a middle column,
I found a 1D peak,

Chinese: 
我会去的
使用找到一个1D峰值
无论我想要的算法。
我可能会最终使用
更有效的算法，
二进制搜索
版本已经消失
一直到左边
的董事会在那里。
假设我找到了一个
（i，j）处的二元峰。
因为我选了一个专栏，
我只是找到一个一维峰值。
 
所以这是j等于2。
那是我。
现在我用（i，j）。
特别是我排第一 -
- 在第i行找到一维峰值。
 
我站在这里，
我真的很开心。
好？
因为我说，哇。
我选了一个中间栏，
我发现了一个1D峰值，

English: 
that is theta m complexity to
find a 1D peak as we argued.
And one side-- the theta m--
AUDIENCE: Log n.
PROFESSOR: Oh, I'm sorry.
You're right.
The log n complexity,
that's what this was.
So I do have that here.
Yeah.
Log n complexity.
Thanks, Eric.
And then once I do that, I
can find a 1D peak on row i.
In this case row
i would be m wide,
so it would be log m complexity.
If n equals m, then I have
a couple of steps of log n,
and I'm done.
All right?
Am I done?
No.
Can someone tell me
why I'm not done?
Precisely?
Yep.
AUDIENCE: Because when
you do the second part
to find the peak in
row i, you might not
have that column
peak-- There might not
be a peak on the column anymore.
PROFESSOR: That's
exactly correct.
So this algorithm is incorrect.
OK?

Chinese: 
这是最复杂的
我们争辩说，找到一个一维峰值。
还有一方 -  theta m--
听众：日志n。
教授：哦，我很抱歉。
你是对的。
日志的复杂性，
这就是这个样子。
所以我确实在这里。
是啊。
记录复杂性。
谢谢，埃里克。
然后，一旦我这样做，我
可以在第i行找到一个1D峰值。
在这种情况下行
我会很宽，
所以它会变得复杂。
如果n等于m，那么我有
几个log n的步骤，
我完成了。
好吧？
我完成了吗？
没有。
有人可以告诉我吗？
为什么我没有完成？
恰恰？
是的。
观众：因为什么时候
你做第二部分
找到高峰
排我，你可能不会
有那个专栏
高峰 - 可能没有
再次成为专栏的高峰。
教授：就是这样
完全正确。
所以这个算法是不正确的。
好？

Arabic: 
وهذا هو تعقيد m ثيتا ل
العثور على 1D الذروة كما جادلنا.
وجانب واحد-- ثيتا m--
الحضور: سجل n.
الأستاذ: أوه، أنا آسف.
أنت على حق.
سجل n التعقيد،
هذا ما كان هذا.
لذلك لدي هنا.
بلى.
تسجيل تعقيد n.
شكرا، اريك.
ثم بعد أن أفعل ذلك، أنا
يمكن العثور على 1D الذروة على صف ط.
في هذه الحالة الصف
سأكون م واسعة،
لذلك سيكون سجل m التعقيد.
إذا n يساوي m، ثم لدي
إزدوج، بسبب، الخطوات، بسبب، سجل، n،
وأنا فعلت.
حسنا؟
أنا فعلت؟
لا.
يمكن للشخص أن يقول لي
لماذا أنا لم تفعل؟
على وجه التحديد؟
نعم.
الحضور: لأنه متى
يمكنك القيام الجزء الثاني
للعثور على الذروة في
الصف الأول، قد لا
يكون هذا العمود
الذروة - قد لا
يكون ذروة على العمود بعد الآن.
أستاذ: هذا
بالضبط صحيح.
لذلك هذه الخوارزمية غير صحيحة.
حسنا؟

Arabic: 
لا يعمل.
انها فعالة، ولكن غير صحيحة.
حسنا؟
it's-- تريد أن تكون صحيحة.
كنت تعرف يجري تصحيح
وغير فعالة
هو بالتأكيد أفضل من
كونها غير فعالة - أنا آسف.
كونها غير صحيحة وفعالة.
لذلك هذا هو
خوارزمية فعالة،
بمعنى أنها سوف
فقط تأخذ سجل ن الوقت،
ولكن لا يعمل.
And I'll give you
a simple example
here where it doesn't work.
 
The problem is--
--a 2D peak--
--may not exist--
--on row i.
And here's an example of that.
 
Actually this is-- This is
exactly the example of that.

English: 
It doesn't work.
It's efficient, but incorrect.
OK?
It's-- You want to be correct.
You know being correcting
and inefficient
is definitely better than
being inefficient-- I'm sorry.
Being incorrect and efficient.
So this is an
efficient algorithm,
in the sense that it will
only take log n time,
but it doesn't work.
And I'll give you
a simple example
here where it doesn't work.
The problem is--
--a 2D peak--
--may not exist--
--on row i.
And here's an example of that.
Actually this is-- This is
exactly the example of that.

Chinese: 
它不起作用。
这是有效的，但不正确。
好？
这是 - 你想要正确。
你知道正在纠正
效率低下
绝对比不上
效率低下 - 我很抱歉。
不正确和有效。
所以这是一个
高效的算法，
就其意愿而言
只需记录n次，
但它不起作用。
我会给你
一个简单的例子
在这里它不起作用。
 
问题是 -
- 二维峰值 -
- 可能不存在 -
- 在第i行。
这是一个例子。
 
其实这是 - 这是
就是这个例子。

Arabic: 
Let's say that I
started with this row.
Since it's-- I'm starting
with the middle row,
and I could start with
this one or that one.
Let's say I started
with that one.
I end up finding a peak.
And if this were 10 up here,
I'd choose 12 as a peak.
And it's quite possible
that I return 12 as a peak.
Even though 19 is
bigger, because 12
is a peak given
10 and 11 up here.
And then when I choose
this particular row,
and I find a peak on
this row, it would be 14.
That is a 1D peak on this row.
But 14 is not a 2D peak.
OK?
So this particular example,
14 would return 14.
And 14 is not a 2D peak.
All right?
You can collect your
cushion after the class.

Chinese: 
让我们说，我
从这一行开始。
既然 - 我开始了
中间一排，
我可以开始
这一个或那个。
假设我开始了
与那一个。
我最终找到了一个高峰。
如果这里有10个，
我会选择12作为高峰。
这很有可能
我返回12作为一个高峰。
尽管19岁
更大，因为12
是一个给定的高峰
10和11在这里。
然后当我选择
这个特定的行，
我发现了一个高峰
这一行，这将是14。
这是该行的一维峰值。
但14不是二维峰值。
好？
所以这个特殊的例子，
14将返回14。
而14不是二维峰值。
好吧？
你可以收集你的
课后坐垫。

English: 
Let's say that I
started with this row.
Since it's-- I'm starting
with the middle row,
and I could start with
this one or that one.
Let's say I started
with that one.
I end up finding a peak.
And if this were 10 up here,
I'd choose 12 as a peak.
And it's quite possible
that I return 12 as a peak.
Even though 19 is
bigger, because 12
is a peak given
10 and 11 up here.
And then when I choose
this particular row,
and I find a peak on
this row, it would be 14.
That is a 1D peak on this row.
But 14 is not a 2D peak.
OK?
So this particular example,
14 would return 14.
And 14 is not a 2D peak.
All right?
You can collect your
cushion after the class.

Arabic: 
So not so good.
Look like an efficient
algorithm, but doesn't work.
All right?
So how can we get to
something that actually works?
So the last algorithm that
I'm going to show you--
And you'll see four different
algorithms in your problem
set--
--that you'll have to analyze
the complexity for and decide
if they're efficient,
and if they're correct.
But here's a-- a
recursive version
that is better than,
in terms of complexity,
than the Greedy
Ascent algorithm.
And this one works.
So what I'm going to do
is pick a middle column.
 
j equals m over 2 as before.
 

English: 
So not so good.
Look like an efficient
algorithm, but doesn't work.
All right?
So how can we get to
something that actually works?
So the last algorithm that
I'm going to show you--
And you'll see four different
algorithms in your problem
set--
--that you'll have to analyze
the complexity for and decide
if they're efficient,
and if they're correct.
But here's a-- a
recursive version
that is better than,
in terms of complexity,
than the Greedy
Ascent algorithm.
And this one works.
So what I'm going to do
is pick a middle column.
j equals m over 2 as before.

Chinese: 
所以不太好。
看起来很有效率
算法，但不起作用。
好吧？
那么我们该如何去做
实际上有效的东西？
所以最后的算法是
我会告诉你 -
你会看到四个不同的
算法在你的问题
组 -
- 你必须分析
复杂性和决定
如果他们高效，
如果他们是正确的。
但是，这是一个 - 一个
递归版本
这比好，
在复杂性方面，
比贪婪
上升算法。
这个工作。
所以我要做什么
是选择一个中间栏。
 
像前面一样，j等于2。
 

English: 
I'm going to find the
global maximum on column j.
And that's going
to be at (i, j).
I'm going to compare (i comma
j minus 1), (i comma j),
and (i,j plus 1).
Which means that once I've
found the maximum in this row,
all I'm going to look to
the left and the right,
and compare.
I'm going to pick
the left columns.
If (i comma j minus 1) is
greater than (i comma j)--
and similarly for the right.
And if in fact I-- either
of these two conditions

Arabic: 
I'm going to find the
global maximum on column j.
 
And that's going
to be at (i, j).
 
I'm going to compare (i comma
j minus 1), (i comma j),
and (i,j plus 1).
Which means that once I've
found the maximum in this row,
all I'm going to look to
the left and the right,
and compare.
I'm going to pick
the left columns.
 
If (i comma j minus 1) is
greater than (i comma j)--
and similarly for the right.
 
And if in fact I-- either
of these two conditions

Chinese: 
我会找到
j栏的全球最大值。
 
这就是了
在（i，j）。
 
我会比较（我的逗号
j减1），（我逗号j），
和（i，j加1）。
这意味着一旦我有了
在这一行找到最大值，
所有我要去看
左边和右边，
并进行比较。
我要去挑选
左栏。
 
如果（我逗号j减1）是
大于（我逗号j） -
同样的权利。
 
如果实际上我 - 也是
这两个条件

Arabic: 
don't fire, and what
I have is (i comma j)
is greater than or equal
to (i comma j minus 1)
and (i comma j plus
1), then I'm done.
Just like I had
for the 1D version.
If (i comma j) is greater
than or equal to (i comma
j minus 1), and (i comma j
plus 1), that implies (i, j)
is a 2D peak.
OK?
And the reason that
is the case, is
because (i comma j) was the
maximum element in that column.
So you know that
you've compared it
to all of the adjacent elements,
looking up and looking down,
that's the maximum element.
Now you've look at the
left and the right,
and in fact it's greater
than or equal to the elements
on the left and the right.
And so therefore it's a 2D peak.
OK?
So in this case, when you pick
the left or the right columns--
you'll pick one of
them-- you're going

Chinese: 
不要开火，什么
I have is (i comma j)
is greater than or equal
to (i comma j minus 1)
and (i comma j plus
1), then I'm done.
Just like I had
for the 1D version.
If (i comma j) is greater
than or equal to (i comma
j minus 1), and (i comma j
plus 1), that implies (i, j)
is a 2D peak.
好？
而之所以这样
is the case, is
because (i comma j) was the
maximum element in that column.
So you know that
you've compared it
to all of the adjacent elements,
looking up and looking down,
这是最大的元素。
Now you've look at the
left and the right,
and in fact it's greater
than or equal to the elements
on the left and the right.
And so therefore it's a 2D peak.
好？
So in this case, when you pick
the left or the right columns--
you'll pick one of
them-- you're going

English: 
don't fire, and what
I have is (i comma j)
is greater than or equal
to (i comma j minus 1)
and (i comma j plus
1), then I'm done.
Just like I had
for the 1D version.
If (i comma j) is greater
than or equal to (i comma
j minus 1), and (i comma j
plus 1), that implies (i, j)
is a 2D peak.
OK?
And the reason that
is the case, is
because (i comma j) was the
maximum element in that column.
So you know that
you've compared it
to all of the adjacent elements,
looking up and looking down,
that's the maximum element.
Now you've look at the
left and the right,
and in fact it's greater
than or equal to the elements
on the left and the right.
And so therefore it's a 2D peak.
OK?
So in this case, when you pick
the left or the right columns--
you'll pick one of
them-- you're going

English: 
to solve the new problem with
half the number of columns.
All right?
And again, you have to
go through an analysis,
or an argument, to make sure
that this algorithm is correct.
But its intuitively correct,
simply because it matches
the 1D version
much more closely.
And you also have your condition
where you break away right
here, where you have a 2D
peak, just like the 1D version.
And what you've done
is break this matrix up
into half the size.
And that's essentially
why this algorithm works.
When you have a single column--

Chinese: 
to solve the new problem with
half the number of columns.
 
好吧？
And again, you have to
go through an analysis,
or an argument, to make sure
that this algorithm is correct.
But its intuitively correct,
simply because it matches
the 1D version
much more closely.
And you also have your condition
where you break away right
here, where you have a 2D
peak, just like the 1D version.
And what you've done
is break this matrix up
into half the size.
And that's essentially
why this algorithm works.
When you have a single column--

Arabic: 
to solve the new problem with
half the number of columns.
 
All right?
And again, you have to
go through an analysis,
or an argument, to make sure
that this algorithm is correct.
But its intuitively correct,
simply because it matches
the 1D version
much more closely.
And you also have your condition
where you break away right
here, where you have a 2D
peak, just like the 1D version.
And what you've done
is break this matrix up
into half the size.
And that's essentially
why this algorithm works.
When you have a single column--

Chinese: 
 
--find the global
maximum and you're done.
好吧？
So that's the base case.
So let me end with
just writing out
what the recurrence relation
for the complexity of this
is, and argue what the overall
complexity of this algorithm
是。
 
And then I'll give
you the bad news.
 
好吧。
So overall what you have is, you
have something like T of (n, m)
equals T of (n, m
over 2) plus theta n.
这是为什么？
Well n is the number of rows,
m is the number of columns.
In one case you'll be
breaking things down
into half the number of
columns, which is m over 2.
And in order to find
the global maximum,

Arabic: 
 
--find the global
maximum and you're done.
All right?
So that's the base case.
So let me end with
just writing out
what the recurrence relation
for the complexity of this
is, and argue what the overall
complexity of this algorithm
is.
 
And then I'll give
you the bad news.
 
All right.
So overall what you have is, you
have something like T of (n, m)
equals T of (n, m
over 2) plus theta n.
Why is that?
Well n is the number of rows,
m is the number of columns.
In one case you'll be
breaking things down
into half the number of
columns, which is m over 2.
And in order to find
the global maximum,

English: 
--find the global
maximum and you're done.
All right?
So that's the base case.
So let me end with
just writing out
what the recurrence relation
for the complexity of this
is, and argue what the overall
complexity of this algorithm
is.
And then I'll give
you the bad news.
All right.
So overall what you have is, you
have something like T of (n, m)
equals T of (n, m
over 2) plus theta n.
Why is that?
Well n is the number of rows,
m is the number of columns.
In one case you'll be
breaking things down
into half the number of
columns, which is m over 2.
And in order to find
the global maximum,

Arabic: 
you'll be doing theta
n work, because you're
finding the global maximum.
Right?
You just have to
scan it-- this--
That's the way-- That's
what it's going to take.
And so if you do that, and
you go run it through--
and you know that T of
(n, 1) is theta n-- which
is this last part over
here-- that's your base case.
You get T of (n, m) is theta
of n added to theta of n,
log of m times--
log 2 of m times.
Which is theta of
n-- log 2 of m.
All right?
So you're not done
with peak finding.
What you'll see is at four
algorithms coded in Python--
I'm not going to give away
what those algorithms are,
but you'll have
to recognize them.

Chinese: 
you'll be doing theta
n work, because you're
找到全球最大值。
对？
You just have to
scan it-- this--
That's the way-- That's
what it's going to take.
And so if you do that, and
you go run it through--
and you know that T of
(n, 1) is theta n-- which
is this last part over
here-- that's your base case.
You get T of (n, m) is theta
of n added to theta of n,
log of m times--
log 2 of m times.
Which is theta of
n-- log 2 of m.
好吧？
So you're not done
with peak finding.
What you'll see is at four
algorithms coded in Python--
I'm not going to give away
what those algorithms are,
but you'll have
to recognize them.

English: 
you'll be doing theta
n work, because you're
finding the global maximum.
Right?
You just have to
scan it-- this--
That's the way-- That's
what it's going to take.
And so if you do that, and
you go run it through--
and you know that T of
(n, 1) is theta n-- which
is this last part over
here-- that's your base case.
You get T of (n, m) is theta
of n added to theta of n,
log of m times--
log 2 of m times.
Which is theta of
n-- log 2 of m.
All right?
So you're not done
with peak finding.
What you'll see is at four
algorithms coded in Python--
I'm not going to give away
what those algorithms are,
but you'll have
to recognize them.

Arabic: 
You will have seen versions
of those algorithms
already in lecture.
And your job is going to be to
analyze the algorithms, as I
said before, prove that
one of them is correct,
and find counter-examples for
the ones that aren't correct.
The course staff
will stick around
here to answer questions--
logistical questions--
or questions about lecture.
And I owe that
gentleman a cushion.

English: 
You will have seen versions
of those algorithms
already in lecture.
And your job is going to be to
analyze the algorithms, as I
said before, prove that
one of them is correct,
and find counter-examples for
the ones that aren't correct.
The course staff
will stick around
here to answer questions--
logistical questions--
or questions about lecture.
And I owe that
gentleman a cushion.

Chinese: 
You will have seen versions
of those algorithms
已经在讲座了。
And your job is going to be to
analyze the algorithms, as I
said before, prove that
one of them is correct,
and find counter-examples for
the ones that aren't correct.
The course staff
will stick around
here to answer questions--
logistical questions--
or questions about lecture.
And I owe that
gentleman a cushion.
