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
バブルソートでPHPに入門する
Search
えび
May 18, 2024
0
140
バブルソートでPHPに入門する
PHP勉強会札幌_2024年5月18日発表内容です
えび
May 18, 2024
Tweet
Share
More Decks by えび
See All by えび
XcodeのLLDB(ブレークポイント)に入門する
ebibibibibi
0
26
インタプリタ言語が 実行環境の差異を 吸収する仕組みを あさーく理解する
ebibibibibi
0
65
CocoaPodsはなぜRuby製か
ebibibibibi
1
180
通勤をゆたかにする技術 ~通勤中に耳でSwiftを学んだら5kg痩せて精神が安定した話~
ebibibibibi
0
180
巨大リポジトリはパーシャルクローンしようね。
ebibibibibi
0
10
丸め誤差発生の仕組みと向き合い方
ebibibibibi
0
120
影響範囲調査をする技術
ebibibibibi
0
120
Featured
See All Featured
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
58
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
61
51k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.3k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
100
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.4k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
120
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
0
84
How to Talk to Developers About Accessibility
jct
1
94
Reality Check: Gamification 10 Years Later
codingconduct
0
2k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
43
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
34
Transcript
SWIFTばかり書いているエンジニアが 初めてPHPに触ってみた
PHPとSwiftで バブルソートを実装し⽐べてみました!
PHPの⾯⽩みを、 Swiftばかり書いているエンジニア⽬線で 共有させてください!!!
Q: バブルソートって、なに?
バブルソートとは • ソートアルゴリズムの⼀種 • 「⼤きい順」、「⼩さい順」の 並び替えの⽅法
バブルソートとは 隣り合う値を、 ①⼤⼩⽐較 ②並び替える => 「⼤きい順」、「⼩さい順」の 並び替えを実現!
1 6 2 3 4 5 あるところに、 バラバラの数列がありました
1 6 2 3 4 5 バブルソートを使って、 ⼩さい=>⼤きい順に 並べ替えてみましょう。
1 6 2 3 4 5 最初に、右の2つを⽐較します。 1 < 6なので、このままで良さそうです。
1 6 2 3 4 5 次の2つを⽐較します。 3 > 1なので、交換します。
1 6 2 3 4 5
1 6 2 3 4 5 次の2つを⽐較します。 4 > 1なので、交換します。
1 6 2 3 4 5
以下が、 右端から左端まで1回判定した状態です 1 6 2 3 4 5
同じ要領で繰り返していくと、 最終的に 1 ~ 6の順に並び替わります 1 6 2 3 4
5
PHPでバブルソートを実装する!
⼿順: -配列を準備します -外部ループを作成します -内部ループを作成します
None
None
前提: -バブルソートは、 数列を往復し、並び替える
前提: - ⼀巡⽬では、必ず最⼤値(最⼩値)が 決定される
1 6 2 3 4 5 あるところに、 バラバラの数列がありました
1 6 2 3 4 5 ⼀巡、並び替えてみましょう。 1 6 2
3 4 5
1 6 2 3 4 5 ⼀巡、並び替えてみましょう。 1 6 2
3 4 5
⼆巡⽬も並び替えてみましょう。 1 6 2 3 4 5 1 6 2
3 4 5
https://www.youtube.com/watch ?v=xFnrpNxmxo8
前のループで最⼤値(最⼩値) が確定しているから!
ここがおもしろいね、PHP!
PHPでは 変数は ʻ$ʼ記号を使って宣⾔する
PHPでは 変数は ʻ$ʼ記号を使って宣⾔する 使う時も ʻ$ʼをつけたまま
PHPで定数を宣⾔する
PHPは 変数宣⾔と定数宣⾔が全然違う!
Swiftでは 変数は ʻvarʼキーワードをつけて宣⾔する
Swiftでは 定数は ʻletʼキーワードをつけて宣⾔する
PHPの変数宣⾔、わかりやすい!!!
PHPの参照渡しは ʻ&$ʼって書く
Swiftの参照渡しは ʻinoutʼキーワードとʻ&ʼを使って書く
ちょっと似てる。
Swiftの参照渡しは 基本的に使ってはいけない感覚がある
それは、 inoutは副作⽤を持つから。
Swiftは値型が中⼼の⾔語 値型のインスタンスは、コピーされる ⼀つのインスタンスを変更しても、 他のインスタンスには影響を与えない。
Swiftにおいては、 イミュータブルであることに気を配り たい。
だから、 基本的に参照渡しは⾏いたくない
PHPのcountは 配列内の実際の要素数を返す
Swiftのcountも、 配列内の実際の要素数を返す
おそろい♡♡♡
PHPでは forで繰り返し処理を実装する際、 繰り返し更新ルールを設定する
PHPでは forで繰り返し処理を実装する際、 繰り返し更新ルールを設定する
$i = 初期化 ここでは変数iに0を設定 $i < $n ‒ 1 条件。$i
< $n ‒ 1 が真である限りループが続く $i++ 更新動作の設定。ここでは反復の終了時に iを+1する
Swiftにもforループはある
PHPのforループ、 柔軟性が⾼すぎでは?????
まとめ
PHP、異⽂化すぎる
PHP、可読性に気を配られていた
PHP、あまりにも柔軟
違う⾔語に触ると ⾯⽩いですね!!!!!!!