跳到主要内容

方法总结

Binary Search 模板

low ← 0
high ← len(arr) - 1
WHILE low <= high
mid ← (low + high) DIV 2
IF arr[mid] = target THEN RETURN mid
ELSE IF arr[mid] < target THEN low ← mid + 1
ELSE high ← mid - 1
ENDWHILE
RETURN -1

Linear Search 模板

FOR i ← 0 TO len(arr) - 1
IF arr[i] = target THEN RETURN i
ENDFOR
RETURN -1

Insertion Sort 模板

FOR i ← 1 TO len(arr) - 1
key ← arr[i]
j ← i - 1
WHILE j >= 0 AND arr[j] > key
arr[j+1] ← arr[j]
j ← j - 1
ENDWHILE
arr[j+1] ← key
ENDFOR

Stack — Push & Pop

操作检查指针数据
Push(v)Full? (ptr = Max)ptr++ → 然后存 vStack[ptr] ← v
Pop()Empty? (ptr = 0)取 v ← Stack[ptr] 然后 ptr--RETURN v

Queue — Enqueue & Dequeue

操作检查指针数据
Enqueue(v)Full? (Rear = Max)Rear++Queue[Rear] ← v; 首项时 Front ← 1
Dequeue()Empty? (Front=0 OR Front > Rear)取 v ← Queue[Front]; Front++RETURN v

Linked List 遍历

Current ← HeadPointer
WHILE Current <> -1
OUTPUT List[Current].Data
Current ← List[Current].Pointer
ENDWHILE

Big O 速查

算法Big O
Linear SearchO(n)
Binary SearchO(log n)
Bubble SortO(n²)
Insertion SortO(n²)
Stack Push/PopO(1)
Queue Enqueue/DequeueO(1)