Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
計算量考えてます?
Search
umekikazuya
November 06, 2025
Programming
11
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
計算量考えてます?
umekikazuya
November 06, 2025
Other Decks in Programming
See All in Programming
仕様駆動開発へのトライを機に チームに適合する手法を模索し続けている話
freee
PRO
0
510
SlackアプリとLambdaの 連携を構築した話
pawn_4_s
1
120
琵琶湖の水は止められてもNet--HTTPのリトライは止められない / You might be able to stop the water flow of Lake Biwa but you can't stop Net::HTTP retries
luccafort
PRO
0
730
freeeにおけるEvalsの実践例の紹介
freee
PRO
0
110
そこに3びきプロダクトがいるじゃろう——生成AI時代における“価値が届かない理由”の構造
kosuket
0
490
プロポーザルを書いてもらう
pvcresin
0
530
リアルな遅延を測る仕様
kota_yata
1
110
実装をデザインガイドラインに追従させるための取り組み / 260731-dip-mosh-design-system
dachi023
0
450
AI時代に設計が 最大の生産性レバーになる 意図駆動開発とデータを消さない設計|Don't Delete Your Data or Your Intent — Design as the Deepest Lever in the AI Era
tomohisa
1
880
仕様書を書く前にハーネスを作る - Agent Native開発は「探索を速く、判定を固く」
gotalab555
4
1.6k
進化を続けるGo toolsの現在地 / The Current State of Ever-Evolving Go Tools
hond0413
0
220
楽しそうなつよつよエンジニアと目が死んでる僕/A brilliant engineer having a blast, and dead-eyed me.
3l4l5
2
180
Featured
See All Featured
The Curse of the Amulet
leimatthew05
2
14k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
Test your architecture with Archunit
thirion
1
2.3k
Un-Boring Meetings
codingconduct
0
390
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Information Architects: The Missing Link in Design Systems
soysaucechin
0
1.1k
Done Done
chrislema
186
16k
How GitHub (no longer) Works
holman
316
150k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Transcript
計算量考えてます? 探索アルゴリズムに触れてみましょ
自己紹介 興味のある領域 原則、デザインパターン テスト DDD API設計 興味はないけどがんばってる分野 データベース設計 SQL AI
言語・フレームワークの作法 umekikazuya です。
お話すること 探索アルゴリズムは最適化の入口 線形探索、ハッシュ探索, 二分探索 を直感で理解する 実務では「DB」「キャッシュ」で常に使われている
Agenda Why ? え、なんでアルゴリズムやらなきゃいけないの? What ? 計算量?探索アルゴリズム?なにそれ。 How ? デモをお見せします。アルゴリズムを体現して下さい。
01 02 03
01. Why ? なんでアルゴリズムとかやらなきゃいけないの?
え、なんでアルゴリズムやらなきゃいけないの? 01. Why ? こんな経験ありませんか?
え、なんでアルゴリズムやらなきゃいけないの? 01. Why ? 「30分かかっているバッチ処理を、15分に短縮してほしい」 「5秒かかっているAPIレスポンスを、2秒以内にしてほしい」 「社員一覧の表示が重すぎるから、なんとかして」 「SQLをチューニングしたけど、まだ遅い…」
え、なんでアルゴリズムやらなきゃいけないの? 01. Why ? 業務用アプリであれば利用者の業務効率に直結する クラウドの民に嫌われます 馬鹿にされます(されました) という表向きの建前がありつつも...。
え、なんでアルゴリズムやらなきゃいけないの? 01. Why ? アルゴリズムは今日からでも入門できます。 楽しいです。
02. What ? 計算量?探索アルゴリズム?なにそれ。
計算量?探索アルゴリズム?なにそれ。 01. What ? アルゴリズム: 「問題を解決するための手順や計算方法」のこと全般を指します 日常例 乗換案内 料理 etc...
複数の選択肢から、何を重視するのかによって私た ちはその時の自分にとっての最適なアルゴリズムを 選んでいます。 乗り換え案内アプリのアルゴリズム
計算量?探索アルゴリズム?なにそれ。 01. What ? 計算量とは アルゴリズムが動くときに必要な時間やメモリの増え方を表すもの うーん、ちょっとしっくりきませんよね。
線形探索 データ群の端から1つずつ順番に探索 対象であるかチェックしていく探索方 法 PHPの in_array 等はこれ。 ハッシュ探索 データの格納位置を参照する探索方法 Redis等の設計はこれ。
二分探索 配列の中間にある値をチェックし、探 索対象がそれよりも「大きい」「小さ い」などで切り分けていく探索方法 SQLのb-treeインデックスはこれ。 うーん、まだしっくりきませんよね。 計算量?探索アルゴリズム?なにそれ。 01. What ?
計算量?探索アルゴリズム?なにそれ。 01. What ? 九九教えて! 答えが 49 のやつってなんだっけ!? 例1
計算量?探索アルゴリズム?なにそれ。 01. What ? 線形探索 の場合 1の段から答えを最初順番に数えていく方法 ハッシュ探索 の場合 頭の中でどうやって導きました?
脳内のキャッシュ使いましたよね? 二分探索 の場合 1行ずつじゃなく、 真ん中あたりから見て範囲を半分に絞っていく
計算量?探索アルゴリズム?なにそれ。 01. What ? 運命の人への出会い方 例2
線形探索(リニアサーチ) 全人口を確認する感じ。 ハッシュ探索(ハッシュ法) 「これって運命!?」って感じ。 二分探索 共通の趣味とかで 「的」 を絞ってる 感じ。 計算量?探索アルゴリズム?なにそれ。
01. What ? 運命の人への出会い方
02. How ? デモをお見せします。 アルゴリズムを体現して下さい。
「2 ≦ a ≦ 100、2 ≦ b ≦ 100 のとき、a^b
によってできる異なる数はいくつあるでしょうか?」
ライブコーディング
まとめ アルゴリズムは面白い。 キャッシュデータを作る時はハッシュ探索一択。 機会があれば他のアルゴリズムも紹介します。