整列
1.アレイとは
関連データを1つの変数にグループ化して管理するデータ構造で、1つの変数に複数の情報を含めることができます.変数にデータが格納されている場合、
複数のデータが格納されている差が並びます.
1.1. 配列宣言の例
student = new Array();
student[0] = "정재민";
student[1] = "조은미"
ValueとIndexを合わせてElementと呼ぶ.1.2. C方案の特徴
配列宣言から資料の種類と大きさが指定されています.また、同じタイプのデータを格納して変更するしかなく、要素を削除することはできません.中央の要素を削除すると、インデックスは空のままになります.
並べ替えを宣言するときは、連続したメモリ領域を予約し、データを並べて連続的に格納します.
Cは1つの整数を格納するために4 bバイトを必要とし、上の配列は4つの整数を格納する必要があるため、16バイトのメモリが割り当てられている.
1.3. Pythonリストの特性
Pythonのリスト内部はC配列で生成された資料型である.
appendメソッドでは、配列とは異なり、サイズやデータ型を指定する必要がなく、いつでも新しい値を追加できます.
リストに割り当てられた空間には、変数の値ではなく、各変数の参照値が連続的に格納されます.
*各メモリ領域には、実際の値ではない参照が格納されており、複数のデータ型を格納できます.
2.配列の格納方法とインデックスアクセスについて
C言語例
int numArr[4]; //사용하고 있지 않고 연속적인 16칸 예약
numArr[0] = 2;
numArr[1] = 3
numArr[2] = 5;
numArr[3] = 7;
=>配列中の値を用いて連続的に格納される点は,以下のように成り立つ.
// 3번 인덱스 접근
numArr배열의 시작주소: 1000
1000 + 4 * 3 = 1012
=>どのインデックスにアクセスしても時間の複雑さはO(1)
=>RAMの特性を十分に利用するデータ構造
3.シナリオの参照
=>特定の条件値を検索するには、アレイの0番のインデックスを最後のインデックスに順次アクセスする必要があります.したがって、アクセスよりも効率的ではない概念
クリア時間の複雑さ
特定の条件を満たす値を探索する場合,時間複雑度はO(n)であり,配列の大きさに比例する.
4.静的アレイ、動的アレイの比較
静的スキーム
ダイナミック配列
これは
5.動的配列の追加演算
配列の最後に新しい値を追加する操作は、追加操作(append operatoin)として定義されます.
動的配列は内部では静的配列によって生成されるデータ型であり,後続の演算では次の2つのケースの数が現れる.
=>アレイ内のすべてのインデックスにアクセスしてO(n)+新しい値O(1):O(n+1)
6.挿入演算
アレイの末尾にデータを追加するためのappend操作とは異なり、要素を追加する場合、アレイ内の要素の位置にかかわらず、挿入操作と呼ばれます.
挿入演算は、静的配列にスペースがある場合とない場合の2つに分けられます.
6.削除操作
=>時間複雑度:O(n)
=>時間複雑度:O(1)
ひかくアレイえんざん
追加
挿入
Reference
この問題について(整列), 我々は、より多くの情報をここで見つけました https://velog.io/@jmjung9304/배열テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol