久々のアルゴリズム
・久々のアルゴリズム
・探索アルゴリズム
配列の中にある目的のデータを探します。
・ソートアルゴリズム
配列の中にあるデータを指定されたルールで並べ替えます。
・昇順:1 2 3 4 5 大きくなる順
・降順:5 4 3 2 1 小さくなる順
・辞書順(文字列の時):辞書に登場する順番
able beetle belt beat ace 辞書順で並べたらどうなる?
・データ構造
プログラム = アルゴリズム + データ構造
データの組み立て
・配列:同じデータの並んだもの、番号でアクセスできる
・レコード型(C/C++ 構造体):いろんな方のデータをパックして名前を付けたもの
ex) ・ゲームキャラ ゲームキャラ→戦士、魔法使い、ザコ
+-> HP(int) 戦士->HP 戦士->MP 戦士->強さ 戦士->素早さ 戦士->運
+-> MP(int) 魔法使いの->HP …
+-> つよさ(float) ザコ->HP …
+-> 素早さ(float)
+-> 運(int)
・リスト構造、ハッシュ、スタック、キュー…
・2次元配列までの配列いじりをマスターしてほしい
配列とインデックスの関係、アクセスの仕方など
関数と配列のコラボが出てくる。(関数に配列を渡す、関数内で配列の要素を変更する)
【探索】
index 0 1 2 3 4 5 6 7 8
data [8, 5, 3, 4, 1, 6, 9, 2, 7]
dataの中から9を探します。 data[0]~data[8]のなかから要素の値が9のものを探す
探索は、data[0]からdata[8]までを順番に見ていきます。
1アクセス:配列を一回参照、代入した。
1比較:9と配列の要素が同じかどうか確認した if(data[0] == 1) <=1比較
①ランダムに並んでるとき
index 0 1 2 3 4 5 6 7 8
data [8, 5, 3, 4, 1, 6, 9, 2, 7]
から要素9の配列のインデックスを見つける
〇このデータ自体を探索したときの
アクセス回数、比較回数は何回
〇いろんなパターンでデータが並んでた時に、
最小アクセス回数、最小比較回数は何回(最小で見つけたとき)
最大アクセス回数、最大比較回数は何回(最悪の場合)
平均アクセス回数、平均比較回数は?(全部の平均)
②昇順ソートしてあるとき
index 0 1 2 3 4 5 6 7 8
data [1, 2, 3, 4, 5, 6, 7, 8, 9]
から要素9の配列のインデックスを見つける
〇このデータ自体を探索したときの
アクセス回数、比較回数は何回
〇見つける要素が1~9までのどれかの時
最小アクセス回数、最小比較回数は何回(最小で見つけたとき)
最大アクセス回数、最大比較回数は何回(最悪の場合)
平均アクセス回数、平均比較回数は?(全部の平均)
③降順ソートしてあるとき
index 0 1 2 3 4 5 6 7 8
data [9, 8, 7, 6, 5, 4, 3, 2, 1]
〇このデータ自体を探索したときの
アクセス回数、比較回数は何回
〇見つける要素が1~9までのどれかの時
最小アクセス回数、最小比較回数は何回(最小で見つけたとき)
最大アクセス回数、最大比較回数は何回(最悪の場合)
平均アクセス回数、平均比較回数は?(全部の平均)
④ほかに効率の良い方法を考えてみる!
(ソートしてある前提だと。。。)
番外編(前の時間のやつ)
いろいろ用語集+競技プログラミングの紹介
ゲームのプラットフォーム iOS上 iphoneデバイスのグラフィック+iOSで動くプログラム PS4上 PS4のグラフィックデバイスのプログラム+PS4のOSのプログラム PC(Windows環境) :後期からやるよ DirectX(MSのゲーム用グラフィックスライブラリ)を使ったゲーム開発 大体が、ネットワーク対応(アップデート、DLC、通信対戦) サーバー(ゲームサーバー)にアクセスして、”サービス”を受ける サービスを受ける方:クライアント(プログラム) クライアント端末 オンライン(Web上)でコンパイルして結果を表示したりする環境 オンラインコンパイラ、オンラインIDEなどと呼ぶ IDE:Integrated Development Environment VS、eclipse、ATOMなど(エディタ、コンパイラ、デバッガなどがセットになったプログラム環境を提供するソフトウェア(群)) 競技プログラミング オンラインコンパイラを使って、プログラミングの能力を競う大会やサイト Techful 自分の本名と学校のメールアドレス+学籍番号で登録しよう! Human Resource matchine (今どこまで行ったか、スクショ取って送って!) ステージ選択画面のスクショ(今どこかわかる位置で)」