CS50x 2025 – Lecture 3 – Algorithms
What You Will Learn
- アルゴリズムの基本概念を理解する
- データ構造とアルゴリズムの関係を分析する *効率的なアルゴリズムを設計するための基本的な手法を学ぶ
Key Concepts
- アルゴリズムとは、コンピュータが問題を解決するための手順の集合である
- アルゴリズムの効率性は、データのサイズに対するアルゴリズムの実行時間の関係で測られる
- データ構造は、アルゴリズムの効率性に大きな影響を与える
- 二分探索(Binary Search)とは、データを二分して探索するアルゴリズムの一種である
- データのサイズが増えても、効率的なアルゴリズムでは実行時間が大幅に増加しない
Code Examples
if that phone book had, say, n pages, where n just means number, it was a one-to-one relationship because if you add more pages, you need more steps:このコードは、ページ数とページを捜索するステップ数の関係を示しているif John Harvard got sandwiched between two pages, but we proposed to solve that by just doubling back one page if need be if you pass the J section, maybe hit the K section, and therefore, need to go back at least one page:このコードは、ページを捜索する際の問題を解決するためのアプローチを示しているfrom 1,000 pages to 2,000 pages:このコードは、データのサイズが増えても、効率的なアルゴリズムでは実行時間が大幅に増加しないことを示している
Lesson Summary
このレッスンでは、アルゴリズムの基本概念とデータ構造の関係について学んだ。アルゴリズムの効率性は、データのサイズに対するアルゴリズムの実行時間の関係で測られることが分かった。二分探索(Binary Search)などの効率的なアルゴリズムを設計するための基本的な手法についても学んだ。さらに、データのサイズが増えても、効率的なアルゴリズムでは実行時間が大幅に増加しないことを確認した。最後に、データ構造とアルゴリズムの関係について分析し、効率的なアルゴリズムを設計するための基本的な手法を学んだ。このレッスンでは、アルゴリズムの基本概念とデータ構造の関係について深く理解することができた。
Practice Exercise
次の問題を解いてみよう:ある電話帳には、1000ページあり、それぞれのページには10人の名前と電話番号が記載されている。二分探索(Binary Search)を使用して、特定の名前を捜索するには、平均して何ページのページを捜索する必要があるかを計算してみよう。
What Is Next
次のレッスンでは、データ構造とアルゴリズムの関係についてさらに深く学び、効率的なアルゴリズムを設計するための基本的な手法を学ぶことができる。データを効率的に捜索するために使用されるデータ構造についても学ぶことができる。