λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
Programming/Java

8 Array (λ°°μ—΄)

by Dowon Kang 2024. 1. 19.

배열은 λ™μΌν•œ μœ ν˜•μ˜ 데이터 μš”μ†Œκ°€ μˆœμ„œλŒ€λ‘œ μ €μž₯된 데이터 κ΅¬μ‘°μž…λ‹ˆλ‹€. 각 μš”μ†ŒλŠ” 인덱슀(일반적으둜 0λΆ€ν„° μ‹œμž‘)에 μ˜ν•΄ μ‹λ³„λ©λ‹ˆλ‹€. 배열은 데이터λ₯Ό 효율적으둜 μ €μž₯ν•˜κ³  κ²€μƒ‰ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€.

 

인덱슀(Index): λ°°μ—΄μ˜ κ° μš”μ†ŒλŠ” κ³ μœ ν•œ μΈλ±μŠ€λ‘œ μ‹λ³„λ©λ‹ˆλ‹€. μΌλ°˜μ μœΌλ‘œ 0λΆ€ν„° μ‹œμž‘ν•˜μ—¬ λ°°μ—΄μ˜ κΈΈμ΄λ³΄λ‹€ ν•˜λ‚˜ μž‘은 κ°’κΉŒμ§€μ˜ λ²”μœ„λ₯Ό κ°–μŠ΅λ‹ˆλ‹€.
길이(Length): λ°°μ—΄μ˜ κΈΈμ΄λŠ” 배열에 ν¬ν•¨λœ μš”μ†Œμ˜ 수λ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, 길이가 7인 배열은 0λΆ€ν„° 6κΉŒμ§€μ˜ 인덱슀λ₯Ό κ°–λŠ” 일 개의 μš”μ†Œλ‘œ κ΅¬μ„±λ©λ‹ˆλ‹€.

μœ ν˜•(Type): λ°°μ—΄μ€ λ™μΌν•œ μœ ν˜•μ˜ λ°μ΄ν„° μš”μ†Œλ‘œ κ΅¬μ„±λ˜λ©°, μ˜ˆλ₯Ό λ“€μ–΄ μ •μˆ˜, λ¬Έμžμ—΄, λΆ€λ™ μ†Œμˆ˜μ  μˆ˜ λ“±μ΄ λ  μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.

 

μ„ μ–Έ 및 μ΄ˆκΈ°ν™”(Declaration and Initialization)

 

Linear search(μ„ ν˜• κ²€μƒ‰)

Linear search(μ„ ν˜• 검색)λŠ” λ°°μ—΄μ—μ„œ νŠΉμ • 값을 μ°ΎλŠ” κ°„λ‹¨ν•˜λ©΄μ„œλ„ 직관적인 검색 μ•Œκ³ λ¦¬μ¦˜ 쀑 ν•˜λ‚˜μž…λ‹ˆλ‹€. Linear searchλŠ” λ°°μ—΄μ˜ μ²˜μŒλΆ€ν„° λκΉŒμ§€ 순차적으둜 각 μš”μ†Œλ₯Ό κ²€μ‚¬ν•˜λ©΄μ„œ 찾고자 ν•˜λŠ” 값을 찾을 λ•ŒκΉŒμ§€ λ°˜λ³΅ν•©λ‹ˆλ‹€.

더보기
public class LinearSearch {

    public static int linearSearch(int[] array, int target) {
        for (int i = 0; i < array.length; i++) {
            if (array[i] == target) {
                return i; // μ°Ύμ€ κ²½μš° ν•΄λ‹Ή μš”μ†Œμ˜ μΈλ±μŠ€ λ°˜ν™˜
            }
        }
        return -1; // μ°Ύμ§€ λͺ»ν•œ κ²½μš° -1 λ°˜ν™˜
    }

    public static void main(String[] args) {
        int[] myArray = {10, 20, 30, 40, 50};
        int targetValue = 30;

        int result = linearSearch(myArray, targetValue);

        if (result != -1) {
            System.out.println("κ°’ " + targetValue + "은 λ°°μ—΄μ˜ μΈλ±μŠ€ " + result + "에 μœ„μΉ˜ν•΄ μžˆμŠ΅λ‹ˆλ‹€.");
        } else {
            System.out.println("κ°’ " + targetValue + "을 μ°Ύμ„ μˆ˜ μ—†μŠ΅λ‹ˆλ‹€.");
        }
    }
}

 

이 μ˜ˆμ‹œμ—μ„œλŠ” linearSearch λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ λ°°μ—΄μ—μ„œ νŠΉμ • κ°’(targetValue)을 μ°Ύκ³ , μ°Ύμ€ κ²½μš° ν•΄λ‹Ή κ°’μ˜ μΈλ±μŠ€λ₯Ό λ°˜ν™˜ν•˜κ³ , μ°Ύμ§€ λͺ»ν•œ κ²½μš° -1을 λ°˜ν™˜ν•˜λ„둝 ν–ˆμŠ΅λ‹ˆλ‹€.

Linear search의 μ‹œκ°„ λ³΅μž‘λ„λŠ” O(n)μž…λ‹ˆλ‹€. λ°°μ—΄μ˜ ν¬κΈ°κ°€ n일 λ•Œ, μ΅œμ•…μ˜ κ²½μš°μ—λŠ” n번의 λΉ„ꡐ가 ν•„μš”ν•˜κ²Œ λ©λ‹ˆλ‹€. λ”°λΌμ„œ Linear searchλŠ” μž‘은 ν¬κΈ°μ˜ λ°°μ—΄μ΄λ‚˜ μ •λ ¬λ˜μ§€ μ•Šμ€ λ°°μ—΄μ—μ„œ μ‚¬μš©λ  μˆ˜ μžˆμŠ΅λ‹ˆλ‹€. ν¬κΈ°κ°€ ν¬κ±°λ‚˜ μ •λ ¬λœ λ°°μ—΄μ—μ„œλŠ” μ΄μ§„ κ²€μƒ‰κ³Ό κ°™μ€ λ‹€λ₯Έ μ•Œκ³ λ¦¬μ¦˜μ΄ λ” νš¨μœ¨μ μΌ μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.

 

 

 


An array is a data structure that stores elements of the same type in a sequential order, identified by indices.

Linear search is a basic search algorithm that looks for a specific value by checking each element in a collection one by one until a match is found.

 

'Programming > Java' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

10 Object-Oriented Programming (feat. Procedural Programming)  (1) 2024.01.19
9 Two-dimensional Arrays (Feat. Object Array)  (0) 2024.01.19
7 while loop (feat. do-while)  (0) 2024.01.07
6 for loop (feat. Nested, foreach)  (0) 2024.01.07
5 If & Switch (feat. break, continue)  (0) 2024.01.07

λŒ“κΈ€