2023 06 26
転倒数
数列\(A=(A_1, A_2,...,A_n)\)において\(i<j\)かつ\(A_i > A_j\)となる組み合わせの数。
バブルソートの交換回数と等しい。
(1, 2, 3, 4, 5)の転倒数は0
(5, 1, 2, 3, 4)の転倒数は4
A = [5, 1, 2, 3, 4]
inversion = 0
for i in range(len(A)):
for j in range(i + 1, len(A)):
if A[i] > A[j]:
inversion += 1
print(inversion) # 4
【Python】__class__
インスタンスが属しているクラスを表す。これをもとに新たにインスタンスを作成することもできる。
class TestClass():
def __init__(self, name: str) -> None:
self._name = name
def __str__(self) -> str:
return self._name
t = TestClass("test1")
print(t, t.__class__)
t2 = t.__class__("test2")
print(t2, t2.__class__)
【Python】__dict__
オブジェクトの(書き込み可能な)属性を保持する辞書またはその他のオブジェクトマッピング。