임베디드 시스템의 검색 알고리즘을 구현하는 것은 효율적인 데이터 검색에 필수적입니다. 선형 및 이진 검색은 데이터 구조 및 시스템 제약에 따라 사용되는 두 가지 일반적인 방법입니다. 이 가이드는 임베디드 환경에서 두 알고리즘을 구현하기위한 단계별 지침을 제공합니다.

선형 검색 구현

선형 검색은 대상 값이 발견되거나 목록 끝까지 목록에서 각 요소를 스캔합니다. 작고 비례없는 데이터 세트에 대한 간단하고 효과적입니다.

선형 검색을 구현하는 단계:

  • 배열을 통해 반복을 초기화합니다.
  • 각 요소와 대상 값 비교.
  • 일치가 발견되면, 인덱스를 반환합니다.
  • 루프가 일치하지 않고 완료되면 요소가 발견되지 않는 표시를 반환합니다.

코드 스니펫 예:

C:

``c int 선형검색(int arr[], int size, int target) { for (int i = 0; i < 크기; i++) { if (arr[i] == target) { return i; } return -1; // not found } ````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````

Binary search에는 정렬 된 배열이 필요하며, 각 반복의 검색 간격을 분할합니다. 그것은 큰 데이터 세트에 대한 선형 검색보다 더 빠릅니다.

바이너리 검색을 구현하는 단계 :

  • 초기 저와 높은 인덱스를 설정합니다.
  • 중간 인덱스를 계산합니다.
  • 대상과 중간 요소 비교.
  • 동등하면 중간 인덱스를 반환합니다.
  • 대상이 적으면, 중간에 높은 조정 - 1.
  • 대상이 더 크면 중간 + 1에 낮은 조정
  • 대상이 발견되거나 낮은 초과까지 반복합니다.

코드 스니펫 예:

C:

""c int binarySearch (int arr[], int size, int target) { int low = 0; int high = size - 1; while (low <= high) { int mid = low + (high - low) / 2; if (arr[mid] == target) { return mid; } other if (arr[mid] < target; { low = mid + 1; } other { high = mid - 1; } } } } } } // return // 반환되지 않음 // " // " } } // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // " // "

올바른 검색 방법 선택

선형과 바이너리 검색 사이의 선택은 데이터 조직 및 크기에 따라 달라집니다. 작은 또는 미색되지 않은 데이터를 위한 선형 검색을 사용하십시오. 이진 검색은 큰, 정렬 된 데이터 세트에 적합하며 성능이 중요합니다.