목록분류 전체보기 (163)
불로구
이진탐색 - 오름차순 or 내림차순으로 정렬되어있는 배열에서 검색하는 알고리즘 -> 7찾기 step 1) start center end 5 7 9 11 13 15 17 step 2) start center end 5 7 9 - 이진탐색을 시작(0), 중앙( (배열길이 - 1 / 2) ) , 끝( 배열길이 - 1)으로 나눈다. - 찾는 값이 중앙 값 보다 작다면 -> 시작(0), 끝( 중앙-1 ), 중앙 ( (배열길이 - 1 / 2) )가 되고 - 찾는 값이 중앙 값 보다 크다면 -> 시작(중앙+1) , 끝( 배열길이 -1 ), 중앙 (배열길이 -1/2)가 된다. 종료조건 - 1) 중앙값과 key가 일치 - 2) 검색 범위에서 찾지 못함 시간복잡도 - 반복마다 검색 범위가 반으로 줄어든다 - 평균 : lo..
선형 검색이란? - 요소가 직선 모양으로 늘어선 배열에서 원하는 키 값을 앞에서부터 끝까지 돌면서 찾는 검색 배열 인덱스 0 1 2 3 4 배열 요소 2 7 5 1 9 배열의 0번째 인덱스부터 -> 4번째 인덱스 까지 검색을 하는 것이다. 선형 검색의 종료 조건 1) 검색에 실패하고 배열의 끝을 지난 경우 - n+1회 2) 검색에 성공했을 때 - n회 -> 평균은 n/2회 코드 public class 선형검색 { static int seqSearch(int[] a, int n, int key) { int i=0; while(true) { if(i==n) return -1; if(a[i] == key) return i; i++; } // - for문 구현 - // int result = -1; //for(..
코틀란의 자료형은 모두 참조형으로 선언된다고 예전에 포스팅한적이 있다. 그럼 정말 참조형만 사용할까? 아니다. 컴파일을 거쳐가며 Int, Long, Short와 같은 자료형은 기본형으로 변환이 된다. 그렇게 때문에 연산을 할 경우 자료형을 동일하게 변환을 시켜줘야 한다. 자바의 경우 자동 형변환이 있다. 예를 들어.. int a = 10; , double b = a; 라고 선언했을 경우 b의 값을 10.0으로 a의 10이 double타입으로 변환되어 들어간다. 그럼 자바와 비슷한 코틀린에서는? 코틀린에서는 자료형이 다르면 함수를 사용해야 한다. fun main(){ val a: Int = 10 val b: Double = a } 이렇게 선언하면 코틀린에서는 자료형 불일치 오류 ( Type Mismatch..
코틀린은 변수를 사용할 때 반드시 값이 할당되어 있어야 한다. 값이 없는 상태를 NULL이라고 부르는데 코틀린에서 NULL을 사용해보자. fun main(){ var str1 : String = "Hello Kotlin" str1 = null } 일반적으로 이렇게 변수에 NULL을 삽입하려고 하면 에러가 발생한다. 그럼 어떻게 해야할까? fun main(){ var str1 : String? = "Hello Kotlin" str1 = null println(str1) } 이렇게 타입뒤에 '?'를 붙여 null을 할당받을 수 있다고 명시해야한다. 그럼 이번에는 문자열의 길이를 출력해보자 값이 제대로 할당되어 있는 변수의 경우는 간단하다. fun main(){ var str1 : String = "Hello..