[ java ] 검색 알고르즘 > java

본문 바로가기

사이트 내 전체검색

java

[ java ] 검색 알고르즘

작성일 20-12-16 12:30

페이지 정보

작성자 웹지기 조회 1,204회 댓글 0건

본문

Sequential sesarch

 - 가장 단순한 검색 방법으로 원소의 정렬이 필요없다. 하지만 리스트의 길이가 길어진다.

 - 처음부터 순차적으로 검색하는 알고리즘

import java.util.Arrays;


import java.util.Arrays;


public class Exam07_Sequential_search {

    public static void main(String[] args) {

        int[] arr = {13, 35, 15, 11, 26, 72, 78, 13, 61, 90};

        System.out.println(Arrays.toString(arr));

        

        int search = 78;

        for(int i=0; i<arr.length; i++) { //처음부터 차례대로 검색

            if(arr[i] == search) {

                System.out.println(search+"는 "+i+"번째 숫자입니다.");

                break;

            }

        }

    }

}


Binary search 

 - 정렬이 되어있는 상태의 데이터 중에서 검색하는 알고리즘

 - 리스트의 중간 값을 정해 크고 작음을 비교해 검색하는 알고리즘

 

import java.util.Arrays;


public class Exam08_Binary_search {

    public static void main(String[] args) {

        int[] arr = {1, 7, 12, 15, 26, 50, 56, 123, 611, 910};

        System.out.println(Arrays.toString(arr));

        

        int lowIdx = 0;

        int highIdx = arr.length-1;

        int search = 15;

        

        while(true) {

            //검색을 시작과 끝의 중간지점에서 시작

            int midIdx = (lowIdx + highIdx)/2;

            

            if(search == arr[midIdx]) { //같은 값이 있으면 idx 표시

                System.out.println(midIdx+"번째 idx");

                break;

            } else if(search < arr[midIdx]) { //검색값과 중간값 비교 검색값이 작으면 highIdx=midIdx-1;

                highIdx = midIdx-1;

            } else if(search > arr[midIdx]) { //검색값과 중간값 비교 검색값이 크면 lowIdx=midIdx+1

                lowIdx = midIdx+1;

            }

        }

    }

 


추천0

비추천 0

댓글목록

등록된 댓글이 없습니다.

전체 113건 6 페이지

이미지 목록

게시물 검색
Copyright © 즐거운 코딩 생활 ( funyphp ). All rights reserved.
PC 버전으로 보기