$30 off During Our Annual Pro Sale. View Details »
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
18
インタプリタ言語が 実行環境の差異を 吸収する仕組みを あさーく理解する
ebibibibibi
0
63
CocoaPodsはなぜRuby製か
ebibibibibi
1
180
通勤をゆたかにする技術 ~通勤中に耳でSwiftを学んだら5kg痩せて精神が安定した話~
ebibibibibi
0
180
巨大リポジトリはパーシャルクローンしようね。
ebibibibibi
0
8
丸め誤差発生の仕組みと向き合い方
ebibibibibi
0
120
影響範囲調査をする技術
ebibibibibi
0
110
Featured
See All Featured
Reflections from 52 weeks, 52 projects
jeffersonlam
355
21k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.3k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.1k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
970
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Statistics for Hackers
jakevdp
799
230k
Building Flexible Design Systems
yeseniaperezcruz
330
39k
The Cult of Friendly URLs
andyhume
79
6.7k
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、あまりにも柔軟
違う⾔語に触ると ⾯⽩いですね!!!!!!!