Differences

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

Link to this comparison view

Next revision
Previous revision
algorithm:algorithm [2016/06/07 13:01] – 만듦 ledyxalgorithm:algorithm [2022/10/24 15:32] (current) ledyx
Line 3: Line 3:
 {{tag>Algorithm}} {{tag>Algorithm}}
  
-마방진 (Magic Square) +Recursion 
-  * 홀수만 처리 가능! +[[recursion|참조]]
-<sxh java ; title:Language : Java> +
-int size = 5;+
  
-int[][] arr new int[size][size]; +Sort =
-  +
-int middle size/2;+
  
-int i=0, j=middle; +== 합병 정렬 (Merge Sort) ==
-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|참조]] [[merge sort|참조]]
  
-이진 탐색 (Binary Search) = +== Radix Sort (기수 정렬=
-  * A < X ≤ B 건을 검색. (반환값이 index+1 이므로) +[[radix sort|참]]
-<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) { +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; +
- } +
-</sxh>+
  
-= Radix Sort (기수 정렬) = 
-[[radix sort|참조]] 
algorithm/algorithm.1465304489.txt.gz · Last modified: (external edit)