휴대폰에서 "발신번호로 전화번호부검색"에 사용되는 방법은 뭘까요?

pogusm의 이미지

01011112222로부터 전화가 올때,
보통은 발신자번호에 01011112222라고 찍히지만, 그 전화번호가 수신자의 휴대폰 전화번호부에 저장되어있는경우 "김철수(01011112222)" 라고 찍히잖아요?
굳이 스마트폰이 아니더라도 말이죠

근데 그런 비교검색을 하는 알고리즘은 뭘까요?

그냥 순차적으로 검색를 진행하는걸까요?

보통은 전화번호부에 저장가능한 전화번호의 개수가 제한되어 있긴하지만(요즘 스마트폰에선 그 제한이 어떤지 잘 모르겠네요)..
만약 그 개수에 제한이 없다고 했을경우...

10만개의 전화번호를 저장해 두었다고 했을때, 검색속도가 느려지지 않을까요?
(전화가 오는 동시에 발신정보를 표시해야하는 핸드폰의 경우 속도가 느려지면 곤란할 거 같은데요..)

seoleda의 이미지

가장 간단한 방법으로는 binary search를 사용하면 17회의 비교연산으로 10만건의 검색이 가능합니다.

일반적인 방법으로는 전화번호에 대한 인덱스를 구성해서 사용할 수 있습니다. ^^

phonon의 이미지

Sqlite를 이용합니다.
이미 많은 기기(아이폰, 안드로이드 등등)나
애플리케이션(아도비 포토샵, 파이어폭스 등등)에서 SAM화일을 대체하고 있습니다.
내부적으로 바이너리 검색을 하므로 속도와 개발상의 잇점을
동시에 가지고 있다고 봅니다.

힘들게 검색엔진을 만드시기 보다는 이것을 사용하시기 바랍니다.
http://www.sqlite.org/

pogusm의 이미지

스마트 폰은 sqlite를 이용하는군요..

그렇다면 스마트폰이 아닌 일반 휴대폰에서는 어떤방식으로 검색을 할까요?

사실은 이게 궁금했었거든요..

일반휴대폰에서 이진검색을하는지 순차검색을 하는지 궁금했거든요.. ㅠㅠ

snowall의 이미지

한국산 일반폰이라면 2400개 정도밖에 안됩니다. -_-;

피할 수 있을때 즐겨라! http://melotopia.net/b

pogusm의 이미지

한국산 일반폰의 종류가 2400개정도밖에 안된다는 뜻인가요?

아니면 한국산 일반폰의 전화번호 저장 개수가 최대 2400개정도밖에 안되어서 순차검색이든 이진검색이든 별 차이가 없다라는 뜻인가요?

snowall의 이미지

후자입니다.

삼성 애니콜은 저장할 수 있는 번호가 2400개정도네요.

아마 다른 전화기들도 10000개를 넘지는 않을 거예요.

애니콜에는 끝번호 4자리로 검색하는 기능이 있는데, 만약 이 기능이 해싱으로 구현되어 있다면 더 빠를 수 있죠.

피할 수 있을때 즐겨라! http://melotopia.net/b

pogusm의 이미지

그렇군요, 많은 도움이 되었습니다.

확신할순 없지만,
스마트폰이 아닌 일반 휴대폰에서는 2400여개정도의 전화번호만 저장하기때문에,
아마도 이진검색을 사용하지 않고 순차검색을 사용하겠군요..

물론 개인이 사용하는 휴대폰에서
순차검색으로는 감당하기 어려울만큼의(수만~수백만) 전화번호를 저장할 일도 없는게 현실이기도 하겠네요. ㅋ

drinkme의 이미지

제가 알기론 대부분의 피처폰들은
base모델의 code를 상당량 갖다 씁니다.

제가 알기론
그냥 for문 돌립니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.