JAVA/자바 2019. 6. 23. 10:57

이진 탐색이란 오름차순으로 정렬되어 있는 배열에서 특정한 값의 위치를 찾아내는 알고리즘이다.

배열의 중간에 있는 임의의 값을 선택하여, 그 값과 찾고자 하는 값의 크고 작음을 비교하여, 중간 값보다 작으면 좌측의 데이터들을 대상으로, 중간 값보다 크면 우측의 데이터를 대상으로 다시 탐색하여, 해당 값을 찾을 때까지 이 과정을 반복한다.

 

오름차순으로 정렬된 리스트에서만 사용 가능한 단점이 있지만, 속도가 빠르다는 장점이 있다.

 

오름차순으로 정렬하는 방법

https://sno-machinelearning.tistory.com/16

 

Arrays.binarySearch(배열 이름, 찾고자 하는 값);

 

[예제 결과]

 

[예제 코드]

import java.util.*;

public class Solution {
private static int[] arr = {5,7,6,1,3,9,0,12,100};

public static void main(String[] args) {
Arrays.sort(arr);
for(int i=0;i<arr.length;i++) {
System.out.print(arr[i]+"\t");
}
System.out.println();
int a = Arrays.binarySearch(arr, 6);
int b = Arrays.binarySearch(arr, 12);
System.out.print("배열에서의 6과 12의 위치 : ");
System.out.println(a +", "+ b);
}
}

posted by 스노(Snow)
:
JAVA/자바 2019. 6. 23. 09:53

Arrays.copyOfRange() 는 특정 배열의 원하는 범위만큼 복사하여 새로운 배열을 만드는 메소드함수입니다.

 

새로운 배열 = Arrays.copyOfRange(원본 배열,복사하려는 시작 요소의 인덱스,복사하려는 마지막 요소의 인덱스의 바로 다음 인덱스)

 

[예제 결과물]

 

[예제 코드]

import java.util.*;

public class Solution {
private static int[] arr = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

public static void main(String[] args) {
int[] arr1 = Arrays.copyOfRange(arr, 2,6);

System.out.print("arr의 요소 중 인덱스2에서 5까지  불러오기 :  ");
for(int i=0;i<arr1.length;i++) {
System.out.print(arr1[i]+" ");
}
}
}

posted by 스노(Snow)
:
JAVA/자바 2019. 6. 23. 09:40

Arrays.copyOf()는 특정 배열의 원하는 길이만큼 새로운 배열로 복사하는 메소드 함수입니다.

 

새로운 배열 = Arrays.copyof(원본 배열, 원본 배열에서 복사하고 싶은 요소들의 길이); 식으로 사용됩니다.

 

[예제 결과물]

[예제 코드]

import java.util.*;

public class Solution {
private static int[] arr = {1, 2, 3, 4, 5};

public static void main(String[] args) {
int[] arr1 = Arrays.copyOf(arr, 2);
int[] arr2 = Arrays.copyOf(arr, 7);

System.out.print("arr의 요소중 2개 불러오기 :  ");
for(int i=0;i<arr1.length;i++) {
System.out.print(arr1[i]+" ");
}
System.out.println();
System.out.print("arr의 요소중 7개 불러오기 :  ");
for(int i=0;i<arr2.length;i++) {
System.out.print(arr2[i]+" ");
}
}
}

posted by 스노(Snow)
: