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
36
バブルソートでPHPに入門する
PHP勉強会札幌_2024年5月18日発表内容です
えび
May 18, 2024
Tweet
Share
More Decks by えび
See All by えび
丸め誤差発生の仕組みと向き合い方
ebibibibibi
0
55
影響範囲調査をする技術
ebibibibibi
0
27
Featured
See All Featured
How To Stay Up To Date on Web Technology
chriscoyier
789
250k
For a Future-Friendly Web
brad_frost
175
9.4k
YesSQL, Process and Tooling at Scale
rocio
169
14k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Faster Mobile Websites
deanohume
305
30k
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.4k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
28
8.3k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
Embracing the Ebb and Flow
colly
84
4.5k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
How to Think Like a Performance Engineer
csswizardry
21
1.2k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.3k
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、あまりにも柔軟
違う⾔語に触ると ⾯⽩いですね!!!!!!!