Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
algorithm [2016/06/07 13:43] ledyxalgorithm [2021/02/07 03:15] (current) – external edit 127.0.0.1
Line 1: Line 1:
-= Algorithm = +~~REDIRECT>algorithm:algorithm~~
- +
-{{tag>Algorithm}} +
- +
-= 마방진 (Magic Square) = +
-  * 홀수만 처리 가능! +
-<sxh java ; title:Language : Java> +
-int size = 5; +
- +
-int[][] arr = new int[size][size]; +
-  +
-int middle = size/2; +
- +
-int i=0, j=middle; +
-for(int num=1 ; num<=size*size ; num++) { +
- arr[i][j] = num; +
-  +
- //행 감소 +
- i--; +
- if(i < 0) +
- i = size-1; +
-  +
- //열 증가 +
- j = (++j)%size; +
- //아래 표현과 같다. +
- /*j++; +
- if(j >= size) +
- j = 0;*/ +
- +
- //배수이면 행은 1 증가, 열은 그대로 +
- if(num%size == 0) { +
- i = (i+2)%size; +
- j--; +
- if(j < 0) +
- j = size-1; +
-+
-+
-</sxh> +
- +
-= 합병 정렬 (Merge Sort) = +
-[[merge sort|참조]] +
- +
-= 이진 탐색 (Binary Search) = +
-  * A < X ≤ B 조건을 검색. (반환값이 index+1 이므로) +
-<sxh java> +
- public static int binarySearch(ArrayList<Integer> list, int target) { +
- +
- 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) { +
- if(target < list.get(middle + 1)) { +
- return list.get(list.size() > middle + 1 ? middle + 1 : list.size() - 1); +
-+
-+
-+
-  +
- return -1; +
-+
-</sxh> +
- +
-= Radix Sort (기수 정렬) = +
-[[radix sort|참조]]+
algorithm.1465303420.txt.gz · Last modified: 2021/02/07 03:15 (external edit)