본문 바로가기

분류 전체보기270

이클립스에서 mybatis 설정 //model 패키지 안의 .클래스명을 클래스명만 사용하여 사용하겠다. //oracle db 연동 //oracle 디비의 경우 //url 주소 입력 //디비 아이디, 비밀번호 입력 //사용한 mapper.xml 파일들을 연결, mapper에서 db구문을 작성하게 해준다. //mapper 파일에는 각각에 필요한 sql 구문들이 작성되어있다. 2018. 2. 2.
순차탐색 순차탐색(sequential search) - 탐색은 컴퓨터가 가장 많이 하는 작업중 하나이기 때문에, 탐색을 효율적으로 수행하는 것은 매우 중요하다. - 탐색의 단위는 항목이고, 항목 안에는 항목과 항목을 구별시켜주는 key가 존재하는데, 이를 탐색키라고 한다. 정렬되지 않은 배열에서의 탐색 : 배열을 정렬시키지 않아도 되지만, 비효율적 정렬 된 배열에서의 탐색 : 유지보수는 쉽지만, 값이 클 경우 비효율적. - 순차탐색은 간단한 탐색을 할 경우에만 사용하는 것이 좋다. 2018. 1. 29.
기수 정렬 기수정렬(radix sort) : 자리수의 값에 따라 정렬을 하는 다단계 정렬. - 기수 : 숫자의 자리수 - 앞의 정렬방식은 레코드를 비교하여 정렬하는 방식, 비교 불가능한 레코드는 정렬할 수 없다. - 추가 메모리가 필요하지만, 속도가 빠르기 때문에 많이 쓰인다. - 단점으로는 정렬할 수 있는 레코드의 타입이 한정된다. 레코드들이 동일한 길이를 가지는 숫자, 문자열로 구성되어있어야 하기 때문. - 별도의 버킷을 만들어 입력 데이터를 각 자리수의 값에 따라 넣고 왼쪽부터 순차적으로 버킷의 데이터를 읽어온다. - 비교연산이 사용되지 않는다. - 먼저 들어간 숫자는 먼저 나와야 하기 때문에, 버킷은 큐(queue)로 구성(숫자를 넣고 빼는 연산은 큐의 삽입삭제). - 2진법 정렬시 2개의 버킷, 알파벳은 .. 2018. 1. 29.
형 변환이 헷갈릴 때, length와 length()의 차이, charAt(i) 문자-> int Integer.parseInt("12");* parseInt와 intValue의 차이점 - parseInt는 string형에서 int값을 뽑을 때, intValue는 Integer형에서 int값을 뽑을 때 사용.int -> 문자 Integer.toString(3);이렇게 사용하면 된다.예를 들어 텍스트필드에서 입력된 값은 무조건 String이다.해당 필드가 int 라면int value = Integer.parseInt(text.getText());이렇게 가져오고,다시 값을 세팅할 때는text.setText(Integer.toString(value));이런 식으로 이용하면 된다. 또한,String a = Integer.toString(i); // 이 방식은 null point Excepti.. 2018. 1. 29.
퀵 정렬 퀵 정렬- 평균적으로 매우 빠른 수행 속도를 자랑하는 정렬 방식- 병합정렬처럼 분할 정복법 사용 - 피봇(pivot)을 요소로 선택, 피봇보다 작은 요소는 피봇의 왼쪽, 큰 요소는 오른쪽으로 이동- 피봇을 제외한 왼쪽 리스트와 오른쪽 리스트를 다시 정렬하면 완료 1. 피봇 = 인덱스(처음 + 마지막)/2 왼쪽 : L 오른쪽 : R 피봇 : P L 은 L >= P 값을 찾게되고 R은 R < P 값을 찾는다2. 탐색을 하면서 같은 자리의 인덱스에서 만나기전에 두 값을 찾으면 L과 R을 SWAP 해준다3. L과 R중 하나만 값을 찾고 L과 R이 만날경우 만난 값과 피봇 값을 SWAP 해준다4. SWAP된 값을 제외한 나머지 부분을 다시 1~4 과정을 반복한다5. 피벗을 기준으로 왼쪽과 오른쪽 SWAP할 값이 .. 2018. 1. 29.
static 메소드 선언 그동안 메소드를 선언함에 있어서 흔히 public void 메소드명 () 이런 식으로 많이 사용했다.하지만 다른 사람들의 코딩들을 보다보니 메소드를 public static void 메소드명 () 으로 작성되어 있는 것 을 보았다.그래서 찾아본 결과. static 메소드는 자바에서 class를 작성할 때 그 안에 들어가는 메소드에 static을 붙여주는 것으로 이 메소드를 사용하려면 생성자 호출문 '클래스명 = new 클래스명()'를 쓸 필요없이 그냥 클래스명.static메소드명()로 바로 사용하면 된다 new 연산자를 사용하면 번거럽고 메모리를 많이 차지하고 처리 속도가 느려진다. static으로 메소드 선언하는 습관을 들여야겠다. 또한 static 변수의 선언은 전역변수로 사용하면 어느 함수에서든 접.. 2018. 1. 29.