2020-01-01から1年間の記事一覧
実装 import hashlib class HashTable(object): from typing import Any def __init__(self, size=10): super().__init__() self.size = size self.table = [[] for _ in range(self.size)] def hash(self, key) -> int: # hashlib.md5で文字列をエンコード…
単方向連結リストはnextのみを管理していたが、双方向は名前の通り双方向の連結を管理している。 解説 単方向との違いは class Node(object): def __init__(self, data: Any, next_node: Node = None, prev_node: Node = None): super().__init__() self.dat…
単方向リンク 画像のように、データを一列に持っているデータ構造で、リンクの一番後ろにデータをどんどん追加したり、一番最初にデータを追加したりということを行う。 appendでデータ構造の一番後ろに新しくNodeを追加できるようにしている。 insertではデ…
重要度:高い! インナー関数 関数の中であるまとまった処理を行う際に関数内に関数を定義することをインナー関数と呼ぶ。 関数内関数 コード partionの部分で、pivotを配列の一番後ろの数値と決めて、その後左から一つづつpivotと比較して、pivotよりも小さ…
重要度:高い 左から順に入れ替えていくが、一度入れ替えが起こった後その入れ替えた要素をtmp変数に格納し適切な位置に収まるまで左側の数値と比較して小さい値があったらさらに左へ、また次も小さいければさらに左へというように適切な位置まで左に送るソ…
重要度:低い Bubbleソートと類似のソート手法で、左から順にみていき入れ替えた時にBubbleソートはそのまま右にずれるが、ノームソートでは入れ替えた後は左にずれる。 順番が正しい場合はスキップ 順番が正しくない場合はスイッチする。この後バブルソート…
重要度:高い 左から一つづつ、一時的にtmp変数に格納して左から順にそれぞれの配列要素と大きさを比べ、tmpに入っている数値より小さい数値があればその数と入れ替える。その作業を一番右端まで行い、一番小さい数値が入っているインデックス番号の要素を配…
重要度低い combというのはクシという意味なので、クシを溶かしていくように、くしの幅を小さくしていくようにソートを行う手法。 Gap 7/1.3 = 5というのは櫛の幅だと考え、1番目と5番目の数値を入れ替えて入れ替える必要がなければ戻し、Gapを狭くして同…
cocktail(シェイクソート) カクテルをシェークするような動きをするのでこのような名前がつけられている。bubbleソートの改良版でbubbleソートにかなり類似しておりbubbleソートを振る、ようなイメージ。 まず、左から右に配列を見ていって小さければ入れ…
アルゴリズムの重要性 GAFAやシリコンバレーの企業面接には絶対にアルゴリズムのコーディング試験があり、1秒でも処理が早くなるのであればアルゴリズムを早い方に書き換えたほうが良い。車の自動運転など瞬間の判断に関わるものは特に反応速度が重要視され…
アルゴリズムの処理速度を可視化したもの。 O(log(n)) # O(log(n)) def func2(n): if n <= 1: return else: print(n) func2(n/2) func2(10) 10 5.0 2.5 1.25 O(n) # O(n) def func3(numbers): for num in numbers: print(num) func3(range(1,10)) 1 2 3 4 5 …
bogo(ボゴソート) ボゴソートはシャッフルに並び替えた後にそのソートが正しく並び替えられているかを確認するソート手法。 def in_orderでは、左側の数字が右側の数字(i+1番目)よりも大きければその時点で並び替えは失敗しているので、return Falseとい…
一番左側から、配列の個数分forループを行い、limitまで到達したら再度左に戻ってきて同じ処理を行う。 その際にlimitの位置は1つ左に移動する。 for j in range(len_numbers - 1)の部分でlimitの移動を再現している。 一番大きい数字は1週目で一番右にくる…
kubernetes用語集 kubernetes チュートリアル Docker & kubernetes tutorial YouTube まずはDoker #37: AI-人工知能/MLOps/docker/CH1: Docker imagesとVolumeについて kubernetes アプリケーションの運用のトレンドがMonolithからMicroservicesに移ってきて…
Docker このページではdockerのimageとvolumeについて捜査を交えながら説明します。 local環境で行うのですが、ローカル環境でdockerを使えるようにしておく必要があります。 もしまだインストールしていなかったら、「docker インストール mac」とかぐぐる…
RDSについて プライベートサブネットの作成 RDSを設置 WebサーバーからRDSに接続する RDS 今回構築するもの - プライベートサブネットにDBを置くことで外部からのインターネットによる接続をできないようにして安全性を担保する。 - RDSは複数のアベイラビリ…
ドメインについて DNSについて ドメインの購入 Route53について Route53でDNSを設定 Route53 1.ドメインについて ドメインの構造 ・トップレベルドメイン ・第2レベルドメイン ・第3レベルドメイン ・第4レベルドメイン に分かれている。 ICANNという団体…
ウェルノウンポート(TCP)一覧(抜粋) ポート番号 プロトコル名 20 FTP(データ転送) 21 FTP(コントロール) 22 SSH 23 Telnet 25 SMTP 53 DNS 80 HTTP 110 POP3 443 HTTPS ウェルノウンポート(UDP)一覧(抜粋) ポート番号 プロトコル名 53 DNS 67 DHCP(サー…
保存版 この方の記事が最高に欲しかった、かつまとまっていたので自分の保存用です。 ↓こっちをみてください。 qiita.com これもいい qiita.com qiita.com qiita.com Gitリポジトリのメンテ? Gitリポジトリにあるファイルは .git がバージョン管理をしてい…
IAMユーザーの作成について AWS:ゼロから実践するAmazon Web Services。手を動かしながらインフラの基礎を習得 このコースをやる上で使えそうな項目をメモ IPアドレス IPアドレスの範囲 ネットワーク部とホスト部に区分されている CIDR表記 192.168.128.0/2…
qiita.com こちらの記事をほぼまるまんまなのですが、少しMySQLの箇所が違ったので自分用にです。 @gyu_outputsさんの記事を参考にやるだけで十分環境構築できるので、そちらを参照されると良いと。 というか本家の方が圧倒的にまとめられているので... AWS …
出力データが大量すぎて時間がかかる クライアントからログ情報を分析したいとのことでログ情報をDBから出力するような機能を作ったが 実際に実運用が始まってからログを出力した結果、1, 2日くらいのログであれば時間はかかるがcsv出力できた。しかし、全期…
RailsでWEBアプリを作ってます。Ruby on Railsの経験値は9月でちょうど1年くらいです。 なんか割と色々な機能を作れるようになったのでちょっとまとめていきます。 こんな機能はどうやって作るの?みたいなのがあればコメントください。考えます。 jQueryと…