고현우
개발 일지
고현우
전체 방문자
오늘
어제
  • 분류 전체보기 (14)
    • Unity (7)
      • 작업 (1)
      • 지식 (6)
    • DirectX (0)
      • 작업 (0)
      • 지식 (0)
    • C# (3)
      • 디자인 패턴 (0)
      • 알고리즘 (1)
      • 자료구조 (0)
      • 지식 (2)
    • C++ (0)
      • 디자인 패턴 (0)
      • 알고리즘 (0)
      • 자료구조 (0)
      • 지식 (0)
    • 필수 지식 (4)
      • 물리 (0)
      • 선형대수학 (0)
      • 셰이더 (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 로컬좌표
  • 렌더링파이프라인
  • 메모리 계층
  • .NET
  • 래스터라이저
  • 월드좌표
  • 비동기
  • VertexShader
  • 프래그먼트셰이더
  • Unity
  • 그래픽스API
  • 셰이더
  • Z-Up
  • 선형 탐색 알고리즘
  • 버텍스 셰이더
  • Y-Up
  • RenderingPipeline
  • 뷰포트좌표
  • Shader
  • 스크린좌표

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
고현우

개발 일지

[Algorithm] 선형 탐색 알고리즘 에 대해 알아보자
C#/알고리즘

[Algorithm] 선형 탐색 알고리즘 에 대해 알아보자

2022. 3. 1. 00:19

선형 탐색

 

오늘 알아볼 것은 알고리즘의 기본 중의 기본 탐색 알고리즘에 대해 알아보고자 한다

많은 탐색 알고리즘 중 처음 배워 볼 것은 바로 선형 탐색 알고리즘이라고 하는 것이다.

 

선형 탐색 알고리즘 또는 순차 탐색 알고리즘이라고 하는 이것은

단어에서도 알 수 있듯이 특정한 무언가를 찾는 알고리즘이다

 

대상은 리스트, 배열과 같이 수가 나열되어 있는 곳이다

 


Big O 표기

 

선형 탐색 알고리즘의 시간 복잡도는 "O(N)"이며

이는 데이터의 량이 늘어날수록 아래 사진처럼

계산 시간도 같이 늘어나는 것을 의미한다.

 

이 처럼 검색 방법 중 가장 단순히 구현 가능하지만

검색할 대상의 리스트 길이가 길면 길수록 비효율적이게 된다.

 


스크립트

 

함수 로직

        static int LinearSearch(int[] arr, int target)
        {
            int idx = -1;

            for (int i = 0; i < arr.Length; ++i)
            {
                if (arr[i] == target)
                {
                    idx = i;
                    break;
                }
            }

            return idx;
        }

 

결과 출력

        static void Main(string[] args)
        {
            int[] arr = new int[]
            {
                9, 4, 7, 2, 1, 0, 6
            };

            int idx = LinearSearch(arr, 0);
            Console.WriteLine($"IDX : {idx}\n");
        }

 


레퍼런스 사이트

 

https://ko.wikipedia.org/wiki/%EC%88%9C%EC%B0%A8_%EA%B2%80%EC%83%89_%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98

 

순차 검색 알고리즘 - 위키백과, 우리 모두의 백과사전

순차 검색 알고리즘(sequential search algorithm), 또는 선형 검색 알고리즘(linear search algorithm)은 리스트에서 특정한 값을 찾는 알고리즘의 하나다. 이것은 리스트에서 찾고자 하는 값을 맨 앞에서부터

ko.wikipedia.org

저작자표시 (새창열림)
    고현우
    고현우
    Unity / DirectX 게임 개발

    티스토리툴바