일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- java
- hash table
- string
- bit manipulation
- database
- Class
- Matrix
- Counting
- array
- Stack
- 구현
- greedy
- 자바
- Number Theory
- dynamic programming
- 코딩테스트
- 코테
- Math
- Tree
- sorting
- Binary Search
- Method
- two pointers
- geometry
- SQL
- Binary Tree
- Data Structure
- simulation
- implement
- 파이썬
- Today
- Total
목록O(n^2) (5)
코린이의 소소한 공부노트
1. Problem - n개의 정수가 담긴 배열을 오름차순으로 정렬해보자. - 삽입 정렬은 요소를 적절한 위치에 삽입하는 방법으로 정렬한다. - i번째의 요소를 정렬할 차례가 됐을 때, [0, i-1]까지는 정렬된 상태라고 가정한다. - 필요할 때만 요소의 위치를 바꾼다. 2. Input 1) int[] arr 3. Output 1) 오름차순으로 정렬된 배열을 반환 4. Example // 예시: 2 3 6 1 5 4 // 0번째: 삽일할 위치가 없다. -> (2) 3 6 1 5 4 // 1번째: 3은 2보다 크다. -> (2 3) 6 1 5 4 // 2번째: 6은 3보다 크다. -> (2 3 6) 1 5 4 // 3번째: 1은 2보다 작다. -> (1 2 3 6) 5 4 // 4번째: 5는 3보다 크고..
1. Problem - n개의 정수를 담은 배열을 오름차순으로 정렬해보자. - 버블 정렬은 바로 옆에 있는 두 요소 중 더 작은 요소를 앞으로 보내면서 정렬한다. - 맨 끝까지의 비교가 1번씩 일어날 때마다 가장 큰 요소가 맨 뒤로 간다. 2. Input 1) int[] arr 3. Output 1) 정렬된 배열을 반환 4. Example // 예시: {2 3 6 1 5 4} // 2는 바꾸지 않는다. -> {2 3 6 1 5 4} // 3은 바꾸지 않는다. -> {2 3 6 1 5 4} // 1과 6을 바꾼다. -> {2 3 (1 6) 5 4} // 6과 5를 바꾼다. -> {2 3 1 (5 6) 4} // 6과 4를 바꾼다. -> {2 3 1 5 (4 6)} -> {2 3 1 5 4} 6 // 다시 ..
1. Problem - n개의 정수가 담긴 배열을 오름차순으로 정렬해보자. - 선택 정렬은 가장 작은 요소를 찾아 자리를 바꾸면서 정렬한다. - 맨 끝까지의 비교가 1번씩 일어날 때마다 가장 작은 요소가 앞으로 간다. 2. Input 1) int[] arr 3. Output 1) 오름차순으로 정렬된 배열 4. Example // 예시: (2 3 6 1 5 4) // 가장 작은 수: 1 -> 1과 2를 바꾼다. -> 1 (3 6 2 5 4) // 가장 작은 수: 2 -> 2와 3을 바꾼다. -> 1 2 (3 6 5 4) // 가장 작은 수: 3 -> 바꾸지 않는다. -> 1 2 3 (6 5 4) // 가장 작은 수: 4 -> 4와 6을 바꾼다. -> 1 2 3 4 (5 6) // 가장 작은 수: 5 -> ..
- 입력: 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. - 출력: 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. import java.util.*; import java.io.*; class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStre..
1. Problem - n개의 key를 오름차순으로 정렬해보자 - 퀵 정렬은 특정 값(pivot)을 기준으로 그 값보다 작은 것과 큰 것으로 나눠서 정렬한다. 2. Input 1) 양수 n 2) 배열 S 1-indexed 3. Output 1) 오름차순으로 정렬된 S 4. PseudoCode void quicksort(index low, index high){ index pivotpoint; if(low 작은 값(1)의 인덱스 -> 작은 값과 pivot의 위치를 바꾼다. -> 1 {2} 6 3 5 4 // -> pivot이었던 2의 위치는 확정됐고, 2의 위치를 기준으로 왼쪽은 2보다 작은 값, 오른쪽은 큰 값이 된다. // 2를 기준으로 나눠진 왼쪽과 오른쪽에 대해서도 퀵 정렬을 똑같이 진행한다. //..