컨텐츠상세보기

Hello Coding그림으로 개념을 이해하는 알고리즘 (커버이미지)
알라딘
Hello Coding그림으로 개념을 이해하는 알고리즘
  • 평점평점점평가없음
  • 저자아디트야 바르가바 지음, 김도형 옮김 
  • 출판사한빛미디어 
  • 출판일2017-03-31 
보유 1, 대출 0, 예약 0, 누적대출 53, 누적예약 3

책소개

-. 프로그래밍을 전혀 경험해보지 못한 비전공자 (중/고등학생, 대학생, 일반인)
-. 알고리즘의 기본기를 익히고자 하는 사람
-. 프로그래밍에 관심이 있는 이공계 학생

프로그래밍 세계로 초대하는 알고리즘 입문서

알고리즘은 전공자에게도 어렵게 느껴지죠?
이 책은 중학교 수준의 수학 지식만 있으면 이해할 수 있도록 쉽게 설명되어 있습니다.
알고리즘이 지루하고 어렵다는 편견을 깨기 위해 알기 쉽게 설명된 그림과 파이썬을 기반으로 한 친숙한 예제를 사용했습니다.
전공자는 물론 비전공자까지도 알고리즘의 흥미로운 논리 세계로 안내할 것입니다.

혼자 공부하다 궁금증이 생겼다면?

책을 열심히 봤는데도 이해가 되지 않는다고요?
프로그래밍도 처음인데, 주변에 물어볼 사람도 없다면 <Hello Coding> 네이버 카페를 찾아주세요.
입문자도 쉽게 배울 수 있도록 Q&A 게시판을 운영합니다. 언제든지 질문하세요!

http://cafe.naver.com/codinghello

저자소개

아디트야 바르가바는 온라인에서 핸드메이드 상품을 판매하는 엣시(Etsy)의 소프트웨어 엔지니어이다. 시카고 대학에서 전산학 석사를 취득하였으며, adit.io에서 인기있는 기술 블로그를 운영하고 있다.

목차

Chapter 1 알고리즘의 소개
___01 들어가는 글
______성능에 대해 알아야 하는 것들
______문제를 풀기 위해 알아야 하는 것들
___02 이진 탐색
______더 좋은 탐색 방법
______실행 시간
___03 빅오 표기법
______알고리즘 실행 시간이 증가하는 속도가 다르다면?
______여러 가지 빅오 실행 시간 살펴보기
______최악의 실행 시간을 나타내는 빅오 표기법
______많이 사용하는 빅오 실행 시간의 예
______외판원 문제
<연습문제>

Chapter 2 선택 정렬
___01 메모리가 동작하는 방법
___02 배열과 연결 리스트
______연결 리스트
______배열
______용어
______리스트의 가운데에 삽입하기
______삭제하기
___03 선택 정렬
______예제 코드
<연습문제>

chapter 3 재귀
___01 시작하기에 앞서
___02 재귀
___03 기본 단계와 재귀 단계
___04 스택
______호출 스택
______재귀 함수에서 호출 스택 사용
<연습문제>

chapter 4 퀵 정렬
___01 분할 정복
___02 퀵 정렬
___03 빅오 표기법 복습
______병합 정렬과 퀵 정렬 비교
______평균적인 경우와 최악의 경우 비교
<연습문제>

chapter 5 해시 테이블
___01 해시 함수의 소개
___02 해시 함수
___03 해시 테이블을 사용하는 예
______해시 테이블로 조회하기
______중복된 항목을 방지하기
______해시 테이블을 캐시로 사용하기
______해시 테이블의 장점
___04 충돌
___05 성능
______사용률
______좋은 해시 함수란
<연습문제>

chapter 6 너비 우선 탐색
___01 시작하기에 앞서
___02 그래프의 소개
______그래프란 무엇인가?
___03 너비 우선 탐색
______최단 경로 찾기
______큐
___04 그래프의 구현
___05 알고리즘의 구현
______실행 시간
<연습문제>

chapter 7 다익스트라 알고리즘
___01 너비 우선 탐색 vs 다익스트라 알고리즘
___02 다익스트라 알고리즘
___03 용어 설명
___04 다익스트라 알고리즘을 사용한 물물 교환
___05 간선의 가중치가 음수인 경우
___06 구현
<연습문제>

chapter 8 탐욕 알고리즘
___01 수업 시간표 짜기 문제
___02 배낭 채우기 문제
___03 집합 커버링 문제
______근사 알고리즘
___04 NP-완전 문제
______단계별로 풀어보는 외판원 문제
______어떤 문제가 NP-완전 문제인지 알 수 있는 방법은?
<연습문제>

chapter 9 동적 프로그래밍
___01 배낭 채우기 문제
______단순한 방법
______동적 프로그래밍
___02 배낭 채우기 문제에서 자주 하는 질문
______만약 물건이 추가되면 어떻게 되나요?
______만약 행의 순서가 바뀌면 어떻게 되나요?
______격자를 행 방향이 아니라 열 방향으로 채워도 되나요?
______만약 더 작은 물건을 추가하면 어떻게 되나요?
______물건의 일부만 훔칠 수도 있나요?
______여행 일정 최적화 문제
______서로 의존적인 물건을 다루는 방법
______하위 배낭이 두 개 이상인 경우도 있을 수 있나요?
______배낭을 완전히 채우지 못하는 경우도 있나요?
___03 최장 공통 부분 문자열
______격자 만들기
______격자 채우기
______해답
______최장 공통 부분열
______최장 공통 부분열 문제의 해답
<연습문제>

chapter 10 KNN 알고리즘
___01 오렌지와 자몽 분류하기
___02 추천 시스템 만들기
______특징 추출
______회귀 분석
______좋은 특징 고르기
___03 머신러닝의 소개
______OCR
______스팸 필터 만들기
______주식 시장 예측하기
<연습문제>

chapter 11 더 공부해야 할 것
___01 트리
___02 역 인덱스
___03 퓨리에 변환
___04 병렬 알고리즘
___05 맵리듀스
______분산 알고리즘이 유용한 이유는?
______맵 함수
______리듀스 함수
___06 블룸 필터와 하이퍼로그로그
______블룸 필터
______하이퍼로그로그
___07 SHA 알고리즘
______파일 비교
______패스워드 확인
___08 지역 민감 해싱
___09 디피-헬만 키 교환
___10 선형 프로그래밍
___11 에필로그

한줄 서평