Pythonノート:データ構造とアルゴリズムの配列操作


例を挙げて理解する.
配列:一連のデータを理解できます.異なる言語環境では呼び方や特性が異なり、pythonではlistと呼ばれ、同じタイプは要求されず、c++では同じタイプが要求されます.配列は次元によって1つの配列と多次元配列に分けることができ、一般的には1次元と2次元配列が一般的であり、多次元配列は通常動的計画に現れ、深さ学習におけるテンソルtensor自体は多次元配列である.
一般的な操作の簡単な例
  • 擬似コードの遍歴例:
    for i in range(n):
        for  j in range(m):
            array[i][j] = t
    
  • インデックスは、特定のデータ疑似コード
    lst_of_random_things = [1, 3.4, 'a string', True]
    print(lst_of_random_things[0]) # 1
    
  • に下付きでアクセスする.
  • 動的配列の実装目標:最後の挿入、最後の削除、サイズ、インデックス挿入、削除、取得サイズ、インデックス方式を実現する:1つの配列長が10であると仮定する
  • 配列長増加1再挿入要素
  • 配列長を2倍に拡大再挿入要素
  • 分析はどれにしますか.
  • もし私たちが1つの要素を挿入するたびに、長さnの配列を申請しなければならないならば、n個の要素を挿入する時:f(n)=1+2+3+...+n毎回のサイクルはn、n個の数、n回のO(n^2)のレベル
  • である.
  • 毎回2倍に拡張し、最後の配列長がnであると仮定すると、前回はn/2、前回はn/4 f(n)=n+n/2+n/4+n/4+n/8+…<=2 n、最終的にはO(n)のレベル
  • これは、属性または関数
    push_back
    pop_back
    index
    size
    
    を空間で時間を交換する方法でどのように実現するかということです.push_back:sizeが満たされているかどうかを確認し、満たされている場合はallsizeが倍増し、aが倍増し、要素pop_を挿入します.back:最後の要素を削除します.size-1 index:aの対応する位置要素sizeを返します.size を返します.