lecture.js25 #001 개발환경 설정 이번 블로깅 목표- 가장 최근에 나온 책인 Leaning Javascript를 기반으로 학습 로깅을 할 예정. - 실제 원문은 2015년도에 나온건 함정.- 자바스크립트에 대해서 알았지만 체계적으로 배우고 최신 ES6 버전으로 실력 점프업 하고 싶음. npm 초기화$ npm init - 만약 node가 설치 되지 않은 경우, 먼저 node js를 설치 한 후 npm init을 실행해야함. 빌드 도구 설치 : gulp$ npm install gulp -g - 자바스크립트는 기본적으로 인터프리터 언어지만, ES6를 ES5로 트랜스컴파일하기 위해서 빌드 도구를 설치한다.- 왜 최신 버전인 ES6를 ES5로 트랜스컴파일하냐면, 고객이 ES6를 지원하지 못하는 브라우저를 사용하고 있을 수 있으니 안정적인 ES5로.. 2017. 8. 9. #017 퀵 정렬 # 문제) 아래와 같이 정렬되지 않은 배열이 있을때 퀵 정렬을 사용하여 오름차순 정렬하여라. 5 2 4 3 1 병합 정렬과 거의 유사한 분할&정복 방식임. 다만 병합 정렬의 경우, 새로운 배열을 통해 정렬한 반면 퀵정렬을 pivot값을 기준으로 swap하여 정렬한다. 퀵정렬은 먼저 partition작업을 통해 정렬을 수행한다. left를 기준값으로 pivot을 잡고 mid=(왼쪽 인덱스+오른쪽 인덱스)/2, low = 왼쪽 인덱스+1, high=오른쪽 인덱스를 초기화한다. *퀵정렬 효율성을 위해 pivot값 선택을 개선할 수 있음. 일단은 왼쪽을 pivot을 잡도록 하겠음. low와 high가 겹치지 않을때까지 아래 내용을 반복한다. low는 오른쪽 방향으로 이동하면서 pivot보다 큰값을 찾는다. hi.. 2017. 7. 18. #015 힙 정렬 # 문제) 아래와 같이 정렬되지 않은 배열이 있을때 힙 정렬을 사용하여 오름차순 정렬하여라. 5 2 4 3 1 힙 정렬의 힙의 특징을 이용하여 정렬하는 방식을 말한다. 힙의 특징은 아래와 같다. 힙은 완전 이진트리 구조를 활용된다. 추가 시에는 맨 마지막 원소에 추가되며 루트 방향으로 올라가면서 부모와 값을 비교해 적절한 위치를 찾는다. 삭제 시에는 최소 힙으로 구성했을 경우, 최소값을 최대 힙으로 구성했을 경우, 최대값을 반환하고 삭제된다. 또한 삭제 후 이진트리 구조를 유지하기 위해 원소의 마지막 값을 root에 위치하여 자식 중 우선순위가 높은 값과 비교하여 원소의 마지막 값의 위치를 찾는다. 즉, 힙 정렬의 경우, 추가시에 정렬이 된 상태로 들어가게 되며 삭제 시에는 최소(또는 최대) 값을 반환하.. 2017. 7. 18. #014 삽입 정렬 # 문제) 아래와 같이 정렬되지 않은 배열이 있을때 삽입 정렬을 사용하여 오름차순 정렬하여라. 5 2 4 3 1 선택정렬은 방향이 버블과 선택과 다르다. 버블과 선택은 왼쪽에서 오른쪽으로 이동했다면 삽입 정렬은 두번째 부터 시작하여 왼쪽으로 이동하며 삽입될 위치를 찾는다. 만약 왼쪽 값이 더 큰 경우, 왼쪽 값을 현재 인덱스 값에 저장한다. (배열 shift처리) 더이상 왼쪽으로 이동할 수 없거나, 왼쪽값이 더 작다면 삽입할 위치를 찾은 것이므로 해당 위치에 값을 저장한다. int tempValue = 2; 5 2 4 3 1 5 5 4 3 1 2 5 4 3 1 int tempValue = 4; 2 5 4 3 1 2 5 5 3 1 2 5 5 3 1 2 4 5 3 1 int tempValue = 3; 2 4.. 2017. 7. 18. 이전 1 2 3 4 5 6 7 다음