전체 글
-
[ 자료구조 ] 리스트의 구현자료구조 2022. 12. 27. 22:54
리스트에 대해 공부하기 전에, ADT에 대해 정리하고 들어가보자. ADT(Abstract Data Type)란?💡구체적인 기능의 완성과정을 언급하지 않고, 순수하게 기능이 무엇인지를 나열한 것. 리스트의 종류순차 리스트연결 리스트 사람이나 회사에 따라서 ADT에도 차이가 날 수 있다. 그렇지만, 기 본질적인 ADT가 변화하는 것은 아니다.그렇다면, 리스트의 ADT(기능)는 무엇일까?중복 저장을 허용한다.(집합 자료형의 경우는 허용X) 리스트 자료구조의 ADTvoid ListInit(List *plist);초기화할 리스트의 주소 값을 인자로 전달리스트 생성 후 제일 먼저 호출되어야 함 void LInsert(List *plist, Ldata data);리스트에 데이터를 저장한다. int LFirst(Lis..
-
[ 자료구조 ] 빅오 표기법(Big-Oh Notation)자료구조 2022. 12. 27. 22:47
T(n)이 다항식으로 표현된 경우, 최고차항의 차수가 빅-오가 된다. T(n)=5n3+3n2+2n+1T(n)=5n^3+3n^2+2n+1T(n)=5n3+3n2+2n+1O(n3)O(n^3)O(n3) 대표적인 빅-오O(1)O(1)O(1)상수형 빅-오라 한다. 데이터 수에 상관없이 연산횟수가 고정인 알고리즘이다.연산 횟수가 데이터 수에 상관없이 3회 진행되는 O(1)O(1)O(1)이라 한다. O(logn)O(logn)O(logn)로그형 빅-오라 한다. 데이터 수의 증가율에 비해서 연산횟수의 증가율이 훨씬 낮다. 로그 밑이 얼마냐에 따라서 차이가 나긴 하지만, 알고리즘 성능 관점에서는 미미하기 때문에, 대부분의 경우에 있어서 무시가 된다. O(nlogn)O(nlogn)O(nlogn)선형로그형 빅-오라 한다. 데..
-
[ 자료구조 ] 이진탐색자료구조 2022. 12. 27. 22:02
방법1. 첫번째 인덱스와 마지막 인덱스의 값을 합한 후 절반으로 나눈다.2. 절반으로 나눠 나온 중앙 인덱스의 값과 target 값을 비교한다.3. 만약 target 값보다 작다면 왼쪽을 크다면, 오른쪽을 탐색한다. 그럼, 언제까지 이 탐색을 반복해야 할까? 탐색하는 first와 last 값이 만날 때까지? first와 last 값이 만났다는 것은 비교할 대상이 하나 남았다는 것이다.(first와 last가 만났을 떄의 값도 비교해야함) 이진탐색의 탐색횟수를 계산해보자 데이터의 수가 n일 때 최악의 경우에 발생하는 비교연산의 횟수는 어떻게 되는가?n을 1이 될 때 까지 나눈다.데이터가 1개남았을 때, 이때 마지막으로 비교연산 1회 진행 즉, 수식으로 표현하면n∗(1/2)k=1n*(1/2)^k=1n∗(1/..
-
[ JAVA ] 1. 変数と定数JAVA 2021. 4. 24. 12:54
今日、JAVAを勉強し学んだ内容は'変数′と’定数’の定義、そしてその使い方です。 変数と定数とは? プログラム起動中、数字などの値はメモリ上の決まった領域に保管されます。いつでもその値を変更可能な空間を変数と言います。反面、一度決めたら変更出来ない空間を定数と言います。 値を保管する空間を箱に例えて考えるとわかりやすいです。いつでも開けて中身を出し入れ出来る箱を変数、物を入れて一度閉じたら開けられない箱を定数と考えてください。 変数の使い方 変数を使うためには変数の宣言と値の代入が必要です。ここで変数宣言とは変数を用意することを指し、代入とは変数に値を格納することを指します。 定数の使い方 定数を宣言する時はfinalと言う属性を付けます。 定数は例えば円周率などの変更の必要のない値に使われます。 変数 Ex 1) 定数 Ex 2) 使用したコードは以下のGITHubにアップロードし..