10월, 2016의 게시물 표시

JAVA 이진탐색 알고리즘

이미지
이진탐색 Binarysearch 이진탐색(binary search)는 정렬되어 있는 자료들의 집합에서 특정 자료를 찾고자 할 때 많이 사용되며 매우 빠른 탐색 알고리즘이다. 이미지 출저 : http://anster.tistory.com/152 위의 그림 처럼 임의의 숫자가 가능한지 아닌지를 알아내기 쉬운 방법이다. JAVA 코드 public class Binarysearch { public static void main(String[] args) { int[] arr = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; binarySearch(2, arr); } public static void binarySearch(int iKey, int arr[]) { int mid; int left = 0; int right = arr.length - 1; while (right >= left) { mid = (right + left) / 2; if (iKey == arr[mid]) { System.out.println(iKey + " is in the array with index value: " + mid); break; } if (iKey < arr[mid]) { right = mid - 1; } else { left = mid + 1; } } } }

JAVA 퀵 정렬 알고리즘

이미지
퀵 정렬 QuickSort -임의의 숫자를 기준(Pivot)으로 작거나 같은 값을 지닌 숫자는 앞으로, 큰 값을 지닌 숫자는 뒤로 가도록 하여 작은 값을 갖는 숫자와 큰 값을 갖는 숫자로 분리해가며 정렬 -데이터가 실시간으로 입력되고 있을 때 효율적 이해하기 위한 동영상 JAVA 코드 public class QuickSort {         public void sort(int[] data, int l, int r){         int left = l;         int right = r;         int pivot = data[(l+r)/2];                 do{             while(data[left] < pivot) left++;             while(data[right] > pivot) right--;             if(left <= right){                   int temp = data[left];                 data[left] = data[right];                 data[right] = temp;                ...

JAVA 병합정렬 알고리즘

이미지
병합정렬 MergeSort   -보통 데이터가 엄청 많을때 사용하는 방식 -쪼갠 후에 쪼개진 아이끼리 순서를 맞춰줘서 병합 후에 다시 맞추고 가는 방식 이해를 위한 동영상 자바 코드 public class MergeSort { public static void main(String[] args) { //1. 입력 : 원본 데이터가 정렬되어있다고 가정, 오름차순 int[] first = {1, 3, 5}; int[] second = { 2, 4 }; int[] mearge = new int[first.length + second.length]; // MEARGE될 배열 int i = 0, j = 0, k = 0; //i : first 인덱스 , j : second 인덱스, k : mearge 인덱스 int m = first.length; int n = second.length; //2. 처리 while(i < m && j < n){ if(first[i] <= second[j]){ mearge[k++] = first[i++]; }else{ mearge[k++] = second[j++]; } } while(i<m){ mearge[k++] = first[i++]; } while(j<n){ mearge[k++] = second[j++]; } //3. 출력 for(int p = 0; p< mear...

JAVA 삽입정렬 알고리즘

이미지
삽입정렬 InsertionSort 가장 큰 ( 작은 ) 값을 시작으로 보내고 , 남은 데이터를 적당한 위치에 삽입하며 정렬 된 영역을 키워간다 . 이해하기 쉬운 영상 자바 코드 public class InsertionSort {   public static void main(String[] args) {     int[] index = { 4, 1, 3, 5, 2 };     int i, j, temp, in;     for (i = 1; i < index.length; i++) {       in = index[i];       for (j = i - 1; (j >= 0) && (in < index[j]); j--) {         index[j + 1] = index[j];       }       index[j + 1] = in;     }     for (i = 0; i < index.length; i++) {       System.out.print(index[i] + " ");     }   } }

JAVA 선택정렬 알고리즘

이미지
선택정렬 SelectionSort 가장   큰 ( 작은 )  값을   끝으로   보내고 ,  작아진   영역에서   동일한   처리를   반복해   나간다 .  교체작업을 한다. 간단한 예로 3,5,7,9,1,4 로 구성된 배열이 있다고 하자. 1 까지   확인   후에  9 를   맨   뒤로   보냄 ( 4 와   교환 )   결과 :   3,5,7,4,1,9 다음   다시  1 까지   검사   후   가장   큰   값   맨   뒤로   보냄 가장 큰 값이었던 9 전으로 이동  결과 : 3,5,1,4,7,9 다음 결과 : 3,4,1,5,7,9 다음 결과 : 3,1,4,5,7,9 마지막 결과 : 1,3,4,5,7,9 쉬운 이해를 돕기 위한 동영상 자바 코드 public class SelectionSort { public static void main(String[] args) { int indexMin, temp; for (int i = 0; i < list.length - 1; i++) { indexMin = i; for (int j = i + 1; j < list.length; j++) { if (list[j] < list[indexMin]) { indexMin = j; } } temp = list[indexMin]; list[indexMin] = list[i]; list[i] = temp; } } }...

이 블로그의 인기 게시물

3계층 구조( 3 Tier Architecture )

MySQL Index태우기가 뭐에요?

GET방식과 POST방식이란? ( PHP )