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
110
バブルソートでPHPに入門する
PHP勉強会札幌_2024年5月18日発表内容です
えび
May 18, 2024
Tweet
Share
More Decks by えび
See All by えび
巨大リポジトリはパーシャルクローンしようね。
ebibibibibi
0
1
丸め誤差発生の仕組みと向き合い方
ebibibibibi
0
95
影響範囲調査をする技術
ebibibibibi
0
63
Featured
See All Featured
Designing for humans not robots
tammielis
253
25k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
6
680
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
880
YesSQL, Process and Tooling at Scale
rocio
172
14k
Gamification - CAS2011
davidbonilla
81
5.3k
How to train your dragon (web standard)
notwaldorf
92
6.1k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Music & Morning Musume
bryan
46
6.6k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
Rebuilding a faster, lazier Slack
samanthasiow
81
9k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
228
22k
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、あまりにも柔軟
違う⾔語に触ると ⾯⽩いですね!!!!!!!