Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

개발 한번 해블로그

[Java 과제] 4일차 본문

과제

[Java 과제] 4일차

hide on bush 2023. 11. 24. 14:04

Q. 

1.메모리의 값을 서로 교환하는 것을 무엇이라고 하는가.
2.반복문(loop)을 탈출할때 사용하는 명령문은 무엇인가.
3.순차검색(sequential search)의 단점을 기술하시오.
4.데이터가 사전에 오름차순 정렬되어 있어야 하며 데이터를 중앙에서 부터 검색하는 알고리즘은 무엇인가.
5.정렬(sort)알고리즘의 종류를 3개이상 기술하시오.
6.선택정렬의 회전수와 비교회수의 수학적 공식을 쓰세요.
7.최대값과 최소값을 구하기 위해서 변수를 초기화 할때 가장 이상적인 초기화 방법을 기술하시오.
8.char[] c={'c','a','m','p','u','s'};
위 데이터를 오름차순 정렬하는 프로그램을 작성하시오.
9. 8번에서 정렬된 데이터를 가지고 이진검색(binary search)을 이용하여 'p' 문자를 검색하고 그 위치를 출력하시오.
10.char[] a={'1','3','4','1','2','5','1','3','4','1'};
위 배열에서 각 문자의 빈도수를 구하여 아래처럼 출력하는 프로그램을 작성하시오.
  1의 cnt : 4개:****
 2의 cnt : 1개:*
 3의 cnt : 2개:**
 4의 cnt : 2개:**
 5의 cnt : 1개:*

A. 

1. 스왑
2. break
3. 시간 복잡도가 큼, 대용량 데이터에서 비효율적, 검색이 느림
4. 이진 검색
5. 선택 정렬, 삽입 정렬, 버블 정렬
6. n-1 ,  (n-1)n/2
7. 각각의 변수를 데이터 타입의 최대값과 최소값으로 초기화
8.

public class new3 {
    public static void main(String[] args) {
            char[] c={'c','a','m','p','u','s'};
            // 오름차 정렬
            for (int i=0;i<c.length-1;i++){
                for(int j=i+1;j<c.length;j++){
                    if (c[i]>c[j]){
                        char tmp;
                        tmp = c[i];
                        c[i] = c[j];
                        c[j] = tmp;
                    }
                }
            }
            for (char character:c){
                System.out.print(character+"\t");
            }
        }

    }


9. 

public class new3 {
    public static void main(String[] args) {
            char[] c={'c','a','m','p','u','s'};
            // 오름차 정렬
            for (int i=0;i<c.length-1;i++){
                for(int j=i+1;j<c.length;j++){
                    if (c[i]>c[j]){
                        char tmp;
                        tmp = c[i];
                        c[i] = c[j];
                        c[j] = tmp;
                    }
                }
            }
            for (char character:c){
                System.out.print(character+"\t");
            }

        System.out.println();


        char target = 'p';
        int low = 0;
        int high = c.length-1;
        int middle;
        int pos=-1;
        while (low<=high){
            middle = (low+high)/2;
            if (c[middle]==target){
                pos = middle;
                break;
            } else if (c[middle]>target){
                high = middle;
            } else { 
                low = middle;
            }
        }
        System.out.println(pos);

    }

    }


10.

public class new2 {
    public static void main(String[] args) {
        char[] a = {'1', '3', '4', '1', '2', '5', '1', '3', '4', '1'};
        int[] cnt = new int[5];
        for (int i = 0; i < a.length; i++) {
            cnt[a[i] - '1']++;
        }

        for (int i = 0; i < cnt.length; i++) {
            System.out.print((i + 1) + "의 cnt : ");
            printStars(cnt[i]);
        }
    }

    private static void printStars(int count) {
        for (int i = 0; i < count; i++) {
            System.out.print('*');
        }
        System.out.println();  
    }
}

'과제' 카테고리의 다른 글

[멘토링] 얕은 복사와 깊은 복사  (0) 2024.01.17
[토이 프로젝트 1] 여행 여정을 기록, 관리하는 SNS 서비스  (2) 2024.01.03
[Java 과제] 3일차  (0) 2023.11.22
[Java 과제] 2일차  (0) 2023.11.20
[Java 과제] 1일차  (0) 2023.11.16