알고리즘

자료구조와 함께 배우는 알고리즘 입문[자바] - 4일차

zumsim 2022. 11. 16. 17:36
728x90
반응형

03. 검색

 

연습문제 Q1

static int seqSearch(int[] a, int n, int key) {
      a[n] = key;

      for(int i=0; i<a.length; i++) {
          if(a[i] == key) {
               return i;
          }
      }
      return -1;
}

 

public static void main(String[] args) {
      Scanner sc = new Scanner(System.in);

      System.out.print("배열 크기 ::: ");

      int num = sc.nextInt();
      int[] x = new int[num+1];

      for(int i=0; i<num; i++) {

           System.out.print("x["+i+"]" ::: ");

           x[i] = sc.nextInt();
      }

      System.out.print("검색할 값 ::: ");

      int key = sc.nextInt();
      int idx = seqSearch(x, num, key);

      if(idx == -1) {

          System.out.println("그 값의 요소가 없습니다.");
      }else{
          System.out.println(key+"은(는) x["+idx+"]에 있습니다.");

      }

}

 

 

연습문제 Q2

static int seqSearch(int[] a, int n, int key) {

     System.out.print("  | ");

     for(int i=0; i<a.length; i++) {

         System.out.printf("%4d", i);

     }

     System.out.print("\n--+");

     for(int i=0; i<a.length; i++) {
          if(i == a.length-1) {

              System.out.print("----\n");

          }else{

              System.out.print("----");

          }

          for(int i=0; i<a.length; i++) {

                System.out.printf("  | %"+(i+1)*4+"s", "*\n");

                System.out.print(i+" |");

                for(int j=0; j<a.length; j++) {
                        if(j == (a.length-1)) {

                               System.out.printf("%4d \n", a[j]);

                        }else{

                               System.out.printf("%4d", a[j]);

                        }

                }

                if(a[i] == key) {
                      return i;
                }else{
                      System.out.println("  |");
                }

      }

      return -1;

}

 

public static void main(String[] args) {
      Scanner sc = new Scanner(System.in);

      System.out.print("배열 크기 ::: ");

      int num = sc.nextInt();
      int[] x = new int[num+1];

      for(int i=0; i<num; i++) {

           System.out.print("x["+i+"]" ::: ");

           x[i] = sc.nextInt();
      }

      System.out.print("검색할 값 ::: ");

      int key = sc.nextInt();
      int idx = seqSearch(x, num, key);

      if(idx == -1) {

          System.out.println("그 값의 요소가 없습니다.");
      }else{
          System.out.println(key+"은(는) x["+idx+"]에 있습니다.");

      }

}

 

728x90
반응형