Notex 算法空间

简洁、高效、可复用。

1. 快速排序 (Quick Sort)

原理

分治法(Divide and Conquer):选择一个基准值(Pivot),将数组分成小于基准、等于基准、大于基准的三部分,递归处理。

用处

通用的高效排序场景,在大多数实际应用中表现优异。

代码

def quick_sort(arr):
    if len(arr) <= 1: return arr
    pivot = arr[len(arr) // 2]
    left = [x for x in arr if x < pivot]
    middle = [x for x in arr if x == pivot]
    right = [x for x in arr if x > pivot]
    return quick_sort(left) + middle + quick_sort(right)

2. 二分查找 (Binary Search)

原理

针对已排序数组,每次取中间元素与目标比较,从而舍弃一半空间。

用处

在大型有序数据库中进行快速查找。

代码

def binary_search(arr, target):
    low, high = 0, len(arr) - 1
    while low <= high:
        mid = (low + high) // 2
        if arr[mid] == target: return mid
        elif arr[mid] < target: low = mid + 1
        else: high = mid - 1
    return -1