7 대 찾기 알고리즘 (순서 찾기, 반절 찾기, 삽입 값 찾기, 피 보 나치 찾기, 블록 찾기, 해시 찾기, 트 리 테이블 찾기)
6499 단어 알고리즘
: , 。 , , 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)。
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Codility Lesson3】FrogJmpA small frog wants to get to the other side of the road. The frog is currently located at position X and wants to get to...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.