This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| algorithm:algorithm [2016/06/07 13:01] – 만듦 ledyx | algorithm:algorithm [2022/10/24 15:32] (current) – ledyx | ||
|---|---|---|---|
| Line 3: | Line 3: | ||
| {{tag> | {{tag> | ||
| - | = 마방진 (Magic Square) | + | = Recursion |
| - | * 홀수만 처리 가능! | + | [[recursion|참조]] |
| - | <sxh java ; title: | + | |
| - | int size = 5; | + | |
| - | int[][] arr = new int[size][size]; | + | = Sort = |
| - | + | ||
| - | int middle | + | |
| - | int i=0, j=middle; | + | == 합병 정렬 (Merge Sort) == |
| - | for(int num=1 ; num< | + | |
| - | arr[i][j] = num; | + | |
| - | + | ||
| - | //행 감소 | + | |
| - | i--; | + | |
| - | if(i < 0) | + | |
| - | i = size-1; | + | |
| - | + | ||
| - | //열 증가 | + | |
| - | j = (++j)%size; | + | |
| - | //아래 표현과 같다. | + | |
| - | /*j++; | + | |
| - | if(j >= size) | + | |
| - | j = 0;*/ | + | |
| - | + | ||
| - | // | + | |
| - | if(num%size == 0) { | + | |
| - | i = (i+2)%size; | + | |
| - | j--; | + | |
| - | if(j < 0) | + | |
| - | j = size-1; | + | |
| - | } | + | |
| - | } | + | |
| - | </ | + | |
| - | + | ||
| - | = 합병 정렬 (Merge Sort) = | + | |
| [[merge sort|참조]] | [[merge sort|참조]] | ||
| - | = 이진 탐색 | + | == Radix Sort (기수 정렬) == |
| - | * A < X ≤ B 조건을 검색. (반환값이 index+1 이므로) | + | [[radix sort|참조]] |
| - | <sxh java> | + | |
| - | public static int binarySearch(ArrayList< | + | |
| - | int left = 0; | ||
| - | int right = list.size() - 1; | ||
| - | int middle = 0; | ||
| - | |||
| - | while(left <= right) { | ||
| - | |||
| - | middle = (left + right) / 2; | ||
| - | |||
| - | if(target < list.get(middle)) { | ||
| - | right = middle - 1; | ||
| - | } | ||
| - | else { | ||
| - | left = middle + 1; | ||
| - | } | ||
| - | |||
| - | if(list.get(middle) <= target && middle < list.size() - 1) { | + | = Search = |
| - | if(target < list.get(middle + 1)) { | + | == Binary Search |
| - | return list.get(list.size() > middle + 1 ? middle + 1 : list.size() - 1); | + | [[binary search|참조]] |
| - | } | + | |
| - | } | + | |
| - | } | + | |
| - | + | ||
| - | return -1; | + | |
| - | } | + | |
| - | </ | + | |
| - | = Radix Sort (기수 정렬) = | ||
| - | [[radix sort|참조]] | ||