[python] クイックソートの実装 はてなブックマーク - [python] クイックソートの実装

# https://ja.wikipedia.org/wiki/%E3%82%AF%E3%82%A4%E3%83%83%E3%82%AF%E3%82%BD%E3%83%BC%E3%83%88 # http://www.ics.kagoshima-u.ac.jp/~fuchida/edu/algorithm/sort-algorithm/quick-sort.html def quick_sort(array, first, last): # あるpivotをもとに、そこから左だけはpivot以下の値だけに、右はpivot以上の値だけにする # 左と右の配列に対してq

[python] バブルソートの実装 はてなブックマーク - [python] バブルソートの実装

# https://ja.wikipedia.org/wiki/%E3%83%90%E3%83%96%E3%83%AB%E3%82%BD%E3%83%BC%E3%83%88 # 交換を最大 n-1 , n-2, ... 1回 = n(n-1)/2 回 -> O(n^2) def bubble_sort(array): # 最初は0からn-1まで探索し一番大きい要素をn-1に # 次は0からn-2まで一番大きい要素をn-2

[python] マージソートの実装 はてなブックマーク - [python] マージソートの実装

# https://ja.wikipedia.org/wiki/%E3%83%9E%E3%83%BC%E3%82%B8%E3%82%BD%E3%83%BC%E3%83%88 # http://www.ics.kagoshima-u.ac.jp/~fuchida/edu/algorithm/sort-algorithm/merge-sort.html def merge_sort(array): # 配列の長さが1ならソート不要なので返す if len(array) <= 1: return array # それより長いなら半分に分割してそれぞれにマージソートを適用する mid = len(array) // 2 left

[python] __repr__と__str__の違い はてなブックマーク - [python] __repr__と__str__の違い

Referenceによると以下の通り。 __str__(self) オブジェクトの「非公式の (informal)」あるいは表示に適した文字列表現を計算するために呼ばれる

[python] データ型ごとのメモリサイズ はてなブックマーク - [python] データ型ごとのメモリサイズ

int intはデフォルトで28bit >>> import sys >>> sys.getsizeof(1) 28 超えると自動で拡張される >>> sys.getsizeof(1<<32) 32 >>> sys.getsizeof(1<<60) 36 >>> sys.getsizeof(1 << 10000) 1360 Python3.0をみると、整数型の上限が廃止され

[python] string文字列の使い方 はてなブックマーク - [python] string文字列の使い方

連続して並んでいる文字を連結する >>> 'Py' 'thon' 'Python' 負のindexを指定 >>> word = 'Python' >>> word[-1] # last character 'n' >>> word[-2] # second-last character 'o' >>> word[-6] 'P' スライス >>> word[:2] # character from the beginning to position 2 (excluded) 'Py' >>> word[4:] # characters from

[python] pipenvの使い方 はてなブックマーク - [python] pipenvの使い方

pipenvを使うことにより、rubyにおけるGemfileのようにpythonでpackage管理を行うことができる。 目次 利点 特徴 インスト

[要約]A Better Pip Workflow はてなブックマーク - [要約]A Better Pip Workflow

requirements.txtを使うのには問題があるよ、という話。 典型的なrequirements.txtの使い方 1.A list of top-level dependencies a project has, often without