ADT(Abstract Data Type, 추상자료형)- 구체적인 기능의 완성을 언급하지 않고 순수하게 기능이 무엇인지를 나열한것 - 실제 자료를 내부적으로 어떻게 저장하고 처리하는지에 대한 것은 따지지 않고 이자료형을 이용할 때의 기능만 이야기하는 것- 따라서 ADT에는 성능에 대한 평가를 하지 않는다 정의An Abstract Data Type is data type that is organized in such a way that the specification of the objects and specification of the operation on the objects is separated from representation of objects and the implementation of ..
배열- 연관된 데이터를 그룹핑해서 관리하기 위한 방법- 하나의 변수에 여러 정보를 담을 수 있다- 반복문과 결합하여 효율적으로 사용이 가능- 인덱스를 통해 빠른 데이터 조회 가능 Java에서의 배열배열 생성- int[] 변수명 ; 으로 선언- 배열도 객체이므로 new연산자를 사용해 생성ex) int[] numbers = new int[6]; // 크기6을 갖는 numbers 라는 int타입의 1차원 배열 생성String[] strings = new String[100]; // 크기 100을 갖는 strings 라는 String타입의 1차원 배열 생성 배열의 값- 배열의 값은 배열의 인덱스를 이용하여 접근한다ex)numbers[0] = 1 ; // 정수형 배열 numbers 의 첫번째 칸에 정수 1을 저장..
예외처리프로그램을 만들다 보면 수없이 많은 에러가 발생한다자바 자체적으로 프로그램이 오동작을 하지 않도록 에러가 발생하게 함이러한 에러들을 발생하지 않도록 하거나 에러가 발생할 것을 미리 예상하여 발생시에 적절한 처리를 하도록 하는것이 예외처리이다 자바 가상 머신은 프로그램 실행중에 예외가 발생하면 관련된 예외 클래스로부터 예외 객체를 생성하여 프로그램에서 지정된 예외 처리 구문으로 넘긴다 프로그램에 지정된 예외 처리 구문은 예외가 발생하면 자바 강상 머신에 의해 호출되고 예외 객체를 자바 가상 머신으로부터 넘겨받아 적절한 처리를 수행한다 문법 오류- 오타와 같이 자바 구문에 어긋난 코드에서 발생하며 컴파일시에 발생한다실행오류- 프로그램 실행시 상황에 따라 발생하는 오류- 프로그램 자체의 구조적인 문제로..
퀵정렬- 정렬방식중 가장 효율적이고 빠른 방식- 분할 정복(Divide and Conquer)방식 이용- pivot이라는 기준값을 이용하여 작은 값은 왼쪽 큰 값은 오른쪽으로 옮기는 방식으로 진행- 가장 많이 사용 되는 방식 정렬 방식- 먼저 PIVOT 계수를 정한다 PIVOT 계수는 임의로 선정할 수 있으나 중간 크기의 수자를 PIVOT계수로 산정하는 것이 가장 효율적이므로 3개의 임의의 숫자를 랜덤으로 선택한 후 3개중 가운데 값을 PIVOT계수로 설정- PIVOT 값과 LEFT값을 비교한다 만약 LEFT값이 PIVOT값 보다 크다면 PIVOT값과 RIGHT값을 비교한다RIGHT값이 PIVOT값 보다 크다면 Right 인덱스를 왼쪽으로 위치시킨 후 다시 PIVOT값과 비교한다- RIGHT값이 PIVO..
삽입정렬- 배열의 모든 요소를 앞에서부터 차례대로 이미 정렬된 부분과 비교하여 자신의 위치를 찾아 삽입함- 시간 복잡도:O(n^2)- 배열의 두 번째 데이터 부터 연산을 시작함 정렬방법- 두번째 인덱스 부터 시작( 해당 인덱스를 키값으로 지정)- 키값 왼쪽에 위치한 배열은 정렬 된 상태(처음엔 정렬되어 있다고 가정 : 배열의 크기가 1이므로)- 정렬된 배열의 값이 키값보다 크면 위치를 교환한다- 정렬된 배열의 값이 키값보다 작으면 교환을 중지한다(정렬된 배열중 자기자신 보다 작은 값 뒤 큰 값 앞에 위치)- 키값으로 지정되었던 인덱스 까지 정렬되었으므로 다음 인덱스를 다시 키값으로 지정하고 반복 ex) 사진 예시 [1회전] [2회전] [3회전] [4회전] Java로 구현한 삽입정렬
합병정렬- 여러 개의 정렬된 자료의 집합을 결합하여 한 개의 정렬된 집합으로 만드는 방법- 분할 정복(Divide and Conquer)방식으로 설계된 알고리즘- 문제를 반으로 쪼개 문제를 해결해 나가는 방식 , 분할은 배열의 크기가 1보다 작거나 같을 때 까지 반복한다- 시간복잡도 : O(nlogn) 정렬 방법분할- 현재 배열을 반으로 쪼갠다- 배열 시작 위치와 종료위치를 입력받아 둘을 더한 후 2를 나눠 그 위치를 기준으로 나눈다- 쪼갠 배열의 크기가 0이거나 1 일때 까지 반복한다 합병- 두 배열 A,B의 크기를 비교한다- 두 배열의 시작 인덱스를 저장한다- 두 배열의 맨 앞의 값을 비교하여 이 중 작은 값(오름 차순일 경우)을 새 배열에 저장하고 작은값을 추출한 배열의 인덱스를 증가시켜 준다- 이..
버블정렬 - 인접한 두 수를 비교해서 큰 수를 뒤로 보내는 방식- 시간 복잡도 : O(n^2)- 코드가 단순해 자주 사용된다- n개의 원소에 대하여 n개의메모리 사용- 최선의 경우 : 자료가 이미 정렬되어 있는 경우 , 최선의 경우에도 계속해서 반복하지 않도록 정렬되어 있는 경우 다음 패스를 수행하지 않도록 수정할 수 있다- 최악의 경우 : 자료가 역순으로 정렬되어 있는 경우 정렬 방법- 배열의 첫번째 값과 두번째 값의 크기를 비교한다- 더 큰 값을 뒤로 보낸다- 비교하는 배열의 위치를 하나씩 증가하며 위 항목을 반복한다- 배열의 끝까지 비교 했다면 처음 부터 위 작업을 반복하되 비교했던 요소중 제일 마지막 값은 제외 한다 ex) 사진 예시 ex 2ex 1 Java로 구현한 버블정렬
선택정렬- 기준 위치에 맞는 원소를 선택해 자리교환 하는 방식- 시간 복잡도 : O(n^2)- 어떤 상태여도 비교횟수가 같으므로 최악이나 최선이나 시간 복잡도가 같다(물론 평균도 같겠죠)- 데이터 양이 적을 때 좋은 성능을 나타냄- 작은 값을 선택하기 위해서 비교는 여러번 수행되지만 교환 횟수가 적다- 데이터 양이 많을 때 급격히 속도가 떨어진다 정렬 방법- 주어진 데이터(정렬되지 않은 데이터들) 중 최소값을 찾음- 선택된 최소값과 맨앞에 있는 값을 교환(선택된 최소값을 맨앞으로 보냄)- 정렬된 데이터를 제외한 나머지 데이터를 같은 방법으로 정렬 ex) 사진 예시 ex 1 ex 2 Java로 구현한 선택정렬
시간복잡도(Time Complexity)- 프로그램을 실행시켜 완료하는데 걸리는 시간- 어떤 프로그램의 실행시간을 추정하기 위해서는 모든 기본 명령문의 실행 빈도수(frequency count)를 알아야한다 여기서 기본 명령문은 지정문,조건문,반복문 속의 제어문 그리고 stop, return등을 포함한다- 추정을 목적으로 하기 때문에 프로그램 문맥상 하나의 연산 단위를 하나의 단계로 계산하면 의도한 목적 달성에 충분하다- 시간 복잡도의 계산은 정밀하지 않다 예를 들어 N+100의 제곱은 N^2+200N+10000이 되고 N^2으로 간단히 표현한다 Big O 표기법- 빅오 표기법(Big - O Notation)- 알고리즘의 복잡도 또는 성능을 표현하기 위해 사용된다- 최악의 상황을 고려한 시간 복잡도를 표..
자료구조(Data Structure) 자료(Data)현실 세계로부터 수집한 사실이나 개념의 값 또는 이들의 집합을 의미한다흔히 가공되지 않은 형태의 데이터를 자료라고 하며 특정한 용도로 사용하기 위하여 자료를 처리/가공한 형태의 데이터를 정보(Information) 이라고 한다 자료구조(Data Structure)자료의 집합을 의미각 원소들 사이의 관계가 논리적으로 정의된 일정한 규칙에 의하여 나열되며 자료에 대한 처리를 효율적으로 수행할 수 있도록 자료를 조직적, 체계적으로 구분하여 표현한 것을 말한다 자료구조의 선택기준작업의 효율성, 추상화, 재사용성을 증가시키기 위하여 상황에 따른 자료구조를 선택하여 사용해야 한다자료의 처리를 더 효율적으로 하기 위하여 아래의 사항을 고려해야한다- 자료의 처리시간-..
- Total
- Today
- Yesterday
- mariadb데이터 타입
- 스프링 부트 시작 에러
- mysql데이터
- 데크
- 400 error
- spring boot org.springframework.beans.factory.BeanDefinitionStoreException
- spring boot 시작 에러
- HTTP
- mac mariadb 설치
- 스택
- mariadb 데이터타입
- 해시알고리즘
- 스프링 부트 에러
- springframewor
- mysql 세팅
- 자료구조
- 알고리즘
- mac db설치
- 큐
- Stack
- mariadb설치
- mysql 데이터 타입
- hash algorithm
- mysql데이터타입
- Data Structure
- org.springframework.beans.factory.BeanDefinitionStoreException
- hash알고리즘
- mac mariadb
- 400 badgateway
- mariadb
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |