일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 투자
- 알고리즘트레이닝
- 알고리즘공부
- C
- 알고리즘 공부
- 재테크
- 독후감
- 자바
- 채권
- 화장품
- JavaScript
- algorithmStudy
- C++
- algorithmTest
- 독서
- 주식
- 프로그래머스 알고리즘 공부
- 프로그래밍언어
- 성분
- 경제
- 지혜를가진흑곰
- 돈
- 백준알고리즘
- 책알남
- 자바스크립트
- 책을알려주는남자
- 서평
- algorithmtraining
- 다독
- Java
- Today
- Total
목록[Snow-ball]프로그래밍(컴퓨터)/Algorithm (12)
탁월함은 어떻게 나오는가?
퀵 정렬(Quick Sort) 알고리즘 개념 - 퀵 정렬은 찰스 앤터니 리처드 호어가 개발한 정렬 알고리즘이다. - 퀵 정렬은 분할 정복(divide and conquer) 방법을 통해 리스트를 정렬한다. - 다른 원소와의 비교만으로 정렬을 수행하는 비교 정렬에 속한다. - 퀵 정렬은 n개의 데이터를 정렬할 때, 최악의 경우에는 O(n^2)번의 비교를 수행하고, 평균적으로 O(n log n)번의 비교를 수행한다. - 퀵 정렬의 내부 루프는 대부분의 컴퓨터 아키텍처에서 효율적으로 작동하도록 설계되어 있고(그 이유는 메모리 참조가 지역화되어 있기 때문에 CPU 캐시의 히트율이 높아지기 때문이다), 대부분의 실질적인 데이터를 정렬할 때 제곱 시간이 걸릴 확률이 거의 없도록 알고리즘을 설계하는 것이 가능하다. ..
삽입 정렬(Insertion Sort) 알고리즘 개념 삽입 정렬은 자료 배열의 모든 요소를 앞에서부터 차례대로 이미 정렬된 배열 부분과 비교하여, 자신의 위치를 찾아 삽입함으로써 정렬을 완성하는 알고리즘이다. k번째 반복 후의 결과 배열은, 앞쪽 k + 1 항목이 정렬된 상태이다. 카드게임을 할때와 유사하게 생각하면 좋다. 새로운 카드를 뽑을 경우 정렬된 카드 사이에 올바른 자리에 삽입하는 원리이다. 삽입 정렬 알고리즘의 동작 원리 - 상입 정렬은 두 번째 값을 시작으로 첫 번째 값과 비교한다. 비교 후에 삽입할 위치를 지정한 후 값을 알맞는 자리에 삽입하여 정렬한다. - 즉, 두 번째 값을 첫 번째 값과, 세 번째 값은 두 번째, 첫 번째 값과 네 번쨰 값은 세 번째, 두 번째, 첫 번째 값과 비교한다..
버블 정렬(Bubble Sort) 알고리즘의 개념 - 서로 인접한 두 원소를 검사하여 정렬하는 알고리즘 > 인접한 2개의 값을 비교하여 크기가 순서대로 되어 있지 않으면 서로 교환한다. - 선택 정렬과 기본 개념이 유사하다. 버블 정렬 알고리즘의 동작 원리 - 버블 정렬은 첫 번째 값과 두 번째 값을, 두 번째 값과 세 번째 값을 ... 마지막( - 1)값과 마지막 값을 비교하여 자료를 정렬하는 알고리즘이다. - 처음 돌고나면 제일 큰값이 맨 뒤로 이동하게 되며, 2번째돌면 2번째로 큰값이 마지막 - 1 값 위치에 정렬되고 이를 N의 값만큼 전부 수행하게 된다. 이미지로 보는 동작 절차 1) 1번 값과 2번 값을 비교 후 1번 값이 크다면 1번 값과 2번 값의 자리를 바꾼다. 2) 2번 값과 3번 값을 ..
알고리즘 훈련중에 제일 먼저 하게되는 연습은 정렬(Sort)알고리즘 이라고 한다. 그 이유는 정렬 알고리즘 만큼 효율성의 차이를 극명하게 보여주는 것이 없다고 한다. 그래서 정렬알고리즘부터 공부를 시작해봐야겠다. 선택 정렬(Selection Sort) 알고리즘 개념 - 제자리 정렬(in-place sorting)의 알고리즘 중 한종류 > 입력 배열(정렬되지 않은 값들) 이외에 다른 추가 메모리를 요구하지 않는 정렬 방법 선택 정렬 알고리즘 동작 원리 - 해당 순서에 원소를 넣을 위치는 이미 정해져 있고, 어떤 원소를 넣을지 선택하는 알고리즘 > 첫 번째 순서에는 첫 번째 위치에 가장 최솟값을 넣는다. > 두 번째 순서에는 두 번째 위치에 남은 값 중에서 최솟값을 넣는다. > 그렇게 N번까지 반복 후 N번..