목록what I Learnd (52)
HANA -J
분할 정복 전략 -알고리즘이라기 보다는 문제를 풀기위한 방법론에 가깝다. -순서 1. 가장 간단한 경우로 기본단계를 찾는다 순서 2. 주어진 문제를 작게 줄여서 기본단계가 되도록 만드는 법을 찾아 낸다. -활용 예 ) 재귀함수로 합계구하기 1단계. 기본단계를 찾는다 (배열원소의 개수를 0개 또는 1개로 한다) 2단계. 재귀함수를 호출 할 때마다 호출 대상이 되는 배열의 크기가 점점 감소해야 한다. 퀵 정렬 - 정렬알고리즘, 선택정렬보다 빠르고 실제로 자주 사용된다. - 분할 정복 전략을 사용한다. - 배열에서 원소하나를 골라 그 원소를 기준 원소로 정한다. -순서 1. 모든 원소를 기준 원소보다 작은 원소와 큰 원소로 분류 (분할) 순서 2. 두개의 하위 배열에 재귀적으로 퀵 정렬을 호출한다. - 퀵 정..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/nNWcr/btrhWIByxjX/m56rlU1bkWjcJKn5mipfvk/img.png)
재귀(recursion) - 재귀는 함수가 자기 자신을 호출한다 - 이로인해 무한반복을 하는 함수를 만들기 쉽다. -재귀함수는 기본단계 => 자기자신을 다시 호출하지 않는 경우(무한반복에 빠지지 않게 해준다) 재귀단계 => 함수가 자기자신을 호출하는 부분 으로 나누어져 있다. 스택 - 스택은 아주 단순한 자료구조이다. 데이터가 가장위에 push 되고 가장위에 데이터가 pull된다. - 호출스택은 재귀를 사용할 때 매우 중요한 개념이다. - 컴퓨터는 호출스택이라 불리는 스택을 사용한다. 위의 그림과 같은 방식으로 여러개의 함수를 호출하면서 함수에 사용되는 변수를 저장하는 스택을 호출 스택이라 한다. 재귀 함수에서 호출 스택사용 재귀는 확인해야할 상자더미가 없는데 어떤 상자를 열어야 하는지 확인가능한가 ? ..
배열 vs 연결리스트 - 배열 : 배열은 모든 원소의 주소를 다 알고 있다. 따라서 임의의 원소에 접근해야 할 때에는 배열은 사용. - 연결리스트 : 원소를 메모리의 어느 곳에나 위치시킬수 있다. 원소를 추가하기 쉽다. 데이터 검색 : 배열 GOOD 데이터 삽입, 데이터삭제 : 연결리스트 GOOD 선택정렬 실행시간 : n개의 항목을 n번 수행 -> O(n2) 정리 *여러개의 항목을 저장하고 싶을 때에는 배열이나 리스트 이용 *배열을 쓰면 모든 항목은 이웃하는 위치에 저장 *리스트의 각 항목은 다음항목의 주소를 저장하고 있다 *배열은 읽기! 리스트는 삽입과 삭제에 용이!
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/7djCD/btrgwJ9iEQi/2N34JtQ9RWvjch0Cq0ouzK/img.png)
나는 현재 7개월에 가깝게 코딩을 배우고 있지만 알고리즘을 정말 한개도 모른다. 그래서 방송대 수업도 드랍햇다...(드랍당했다) 사실 공부하려고 마음은 많이 먹고 Doit 알고리즘 책도 사서 공부를 했지만 이해가 안되서 그냥 타자연습하는 느낌이 너무 강해서 이대로는 안되겠다 싶어서 다른책을 구매했다. https://book.naver.com/bookdb/book_detail.nhn?bid=11823284 Hello Coding 그림으로 개념을 이해하는 알고리즘 알고리즘은 쉽게 말해 어떤 문제를 해결하기 위한 명령을 모아 놓은 것이다. 이 책에서 다루는 알고리즘은 다른 코드보다 속도를 빠르게 하거나 아주 흥미로운 문제를 풀기 위한 것이다. 정렬 book.naver.com (기억보다는 기록을 블로그를 정독하..