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
130
バブルソートでPHPに入門する
PHP勉強会札幌_2024年5月18日発表内容です
えび
May 18, 2024
Tweet
Share
More Decks by えび
See All by えび
通勤をゆたかにする技術 ~通勤中に耳でSwiftを学んだら5kg痩せて精神が安定した話~
ebibibibibi
0
160
巨大リポジトリはパーシャルクローンしようね。
ebibibibibi
0
6
丸め誤差発生の仕組みと向き合い方
ebibibibibi
0
110
影響範囲調査をする技術
ebibibibibi
0
87
Featured
See All Featured
Being A Developer After 40
akosma
91
590k
Git: the NoSQL Database
bkeepers
PRO
431
66k
jQuery: Nuts, Bolts and Bling
dougneiner
65
7.9k
Rebuilding a faster, lazier Slack
samanthasiow
84
9.2k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.9k
Unsuck your backbone
ammeep
671
58k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
31
2.7k
Java REST API Framework Comparison - PWX 2021
mraible
34
8.9k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.1k
Become a Pro
speakerdeck
PRO
29
5.5k
Music & Morning Musume
bryan
46
6.8k
Designing for Performance
lara
610
69k
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、あまりにも柔軟
違う⾔語に触ると ⾯⽩いですね!!!!!!!