7 대 찾기 알고리즘 (순서 찾기, 반절 찾기, 삽입 값 찾기, 피 보 나치 찾기, 블록 찾기, 해시 찾기, 트 리 테이블 찾기)

6499 단어 알고리즘
1. 순서 찾기 순 서 는 저장 구 조 를 순서 로 저장 하거나 링크 로 저장 하기에 적합 한 선형 표를 찾 습 니 다.
    :           ,        。             ,    ,                k   ,          ;               k   ,      。

2. 요 소 를 반 으로 나 누 면 질서 가 있어 야 하고 순서 가 없 으 면 정렬 작업 을 해 야 합 니 다.
    :        ,        。    k            ,              ,        ;    ,   k                         ,      ,                     。

3. 플러그 인 찾기 는 플러그 인 찾기 를 소개 하기 전에 먼저 새로운 문 제 를 고려 합 니 다. 왜 반절 찾기 는 반드시 반절 이 어야 합 니까? 4 분 의 1 을 접 거나 더 많이 접 는 것 이 아 닙 니까?
    ,        “apple”,                       ?      “zoo”,     ?   ,               ,              。

   ,        1 ~ 10000    100                  5,                    。

      ,          ,      (         )。            :


mid=(low+high)/2,  mid=low+1/2*(high-low);

    ,              :

mid=
low+    (key-a[low])/(a[high]-a[low])    *(high-low),


           1/2       ,                 , mid          key,              。

    :        ,               ,        。  ,           。

 :      ,                 ,                    。  ,            ,               

4. 피 보 나치 찾기
             ,                         ——    。

          ,                 ,        ,                      ,     1:0.618 1.618:1。

0.618                ,                 、  、  、       ,     、                 。         。

            :1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89…….    ,             :F(1)=1,F(2)=1,F(n)=f(n-1)+F(n-2) (n>=2)。(       ,              )。       ,           ,              0.618,      ,                  。

    :             ,                        ,      。   ,                 。

                              。                         F[n],           F[n](       ,           ,    F[n]   ),           , F[n]          F[n-1]   ,    F[n-2]   ,                ,    。

                        ,               ,                ,                ,       。                     (F[k]),    -1  ,            0   ,          0  。

              O(log 2 n ),          ,                     ,     ,               ,  ,                    ,            。

5. 블록 찾기 블록 찾기 는 색인 순서 찾기 라 고도 부 릅 니 다. 이것 은 순서대로 찾 는 개선 방법 입 니 다. 블록 에 따라 질서 가 있 고 블록 내 에 순서 가 없습니다.
    : n     "    "   m (m ≤ n)。      18       ,       3    ,           ,          :                           ,         。

                   ,         ,      。

                                  ,                           ,    。

 (  )          ,                。                 ,        ;                ,         。 

    :
	1.                    ;
	2.        :                ,            ;  ,               。

6. 하 쉬 찾기 1. 정의: 하 쉬 표 (Hash table, 산 목록 이 라 고도 함) 는 키 코드 값 (Key value) 에 따라 직접 방문 하 는 데이터 구조 입 니 다.즉, 키 코드 값 을 표 의 한 위치 에 비 추어 기록 에 접근 함으로써 검색 속 도 를 빠르게 하 는 것 이다.이 매 핑 함 수 는 해시 함수 라 고 하 는데 기록 을 저장 하 는 배열 을 산 목록 이 라 고 합 니 다.
	   hashtable(key,value)         ,   Key                            ,                ,            , value                。

	              ,           key          ,         value,    ,                     


2.         :

	1)             ;

	2)                 ;

	3)              。

3.         :

	1)step1          key,        (  )。                 ,       ;    step2    。

	2)step2            ,     key        。            ,     step2,             。


4.       :

	1)Step1    k ,       Di=H(k); HST  ,     ; HST=k,     ;  ,  step2(    )。

	2)Step2                  Dk=R(Dk-1),  HST[Dk]  , HST[Dk]=k  。 HST[Dk]=K,     ,      。


	   :”5“        ,         ,          ”2",     ”5“ “2”         ,         “    ”,           ”2“ key,”5“ value。


5.     :

            :

	1)key      ,       “6” “5”  ,      “2”,             。

	2)          ,       “6”  ,       1      ,       。

            “  ”:

	   :”     “。

		     ,key=Value+C;  “C"   。Value+C             。

	   :“     ”。

		     , key=value%C;    。

	   :“     ”。

		      ,     value1=112233,value2=112633,value3=119033,

		                    ,     。     key      

		key1=22,key2=26,key3=90。

	   :“     ”。    ,    。

	   :“   ”。

		      ,  value=135790,  key 2      。     value  13+57+90=160,      “1”,  key=60,  ,          ,        key    value   ,   “    ”        。

	                      。                 ,      。           ,                            。


6.            :  

	1)       

		              ,                       。         ,                             ,          ,                 ,          。            。  

	2)    

		                   ,          ,         ,          。      ,     ;                 。                  。

7.  :
	  a、b    ,   50  url,  url   64  ,     4G,    a、b     url?
	
	   :

		            5G*64=300G (50  5000000000, 5G),   4G。

		                 ,           。
		    a,   url  hash(url)%1000,        url     1000    (  a0,a1,…a999)  。            300M。

		    b,   a      url     1000    (b0,b1….b999) 。

		     ,       url        (a0 vs b0, a1 vs b1….a999 vs b999)  ,       (  a0 vs b99)       url。        1000        url  。

		    a0 vs b0,      a0,    url   hash_map  。    b0,  url hash_map ,    url a b     ,        。

		           ,         (    2G),                            。

나무 시계 찾기
1.     

	    :                   ,                ,                  ,        。            ,                  。 

	  :
		(1)       ,                    
		(2)       ,                    
		(3)              。(  )
		(4)                          

알고리즘 방향 찾기: (1) 이 진 트 리 가 비어 있 으 면 찾기 에 실패 하고 빈 지침 으로 돌아 갑 니 다.(2) 이 진 트 리 가 비어 있 지 않 으 면 루트 노드 의 키 워드 를 비교 하 는 값 data. key 와 주어진 값 key: 1) data. key = key 를 찾 으 면 루트 노드 의 주 소 를 되 돌려 줍 니 다.2) data. key < key 가 있 으 면 오른쪽 하위 트 리 를 찾 습 니 다.3) data. key > key 라면 왼쪽 트 리 를 찾 습 니 다.
	***           ,               ,    、        。

2.      2-3   

	  :       ,2-3         1       :
		1)    ,  :
		2)  2  ,       key     value,            ,       2-3  ,     bikey  ,       2-3  ,      key 。
		3)  3  ,       key    value,            。       2-3  ,        key     key  ;        2-3  ,     key        key   ;       2-3  ,         key     。

	2-3      :
		(1)      2-3   ,           
		(2)        2-3    ,                 (       “  ”     ,                        ,                  )

3.         (Red-Black Tree)

	2-3                      ,              2-node,     lgn,                。  2-3         ,           2-3      ,    (Red-Black Tree)。

좋은 웹페이지 즐겨찾기