ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

二分、快排、堆排与双指针

2026/9/18 18:30:36 拓冰建站 浏览量
二分、快排、堆排与双指针

二分

int Binary_Search(vector<int> A,int key){int n=A.size();int low=0,high=n-1,mid;while(low<=high){mid=(low+high)/2;if(A[mid]==key)return mid;else if(A[mid]>key)high=mid-1;elselow=mid+1;	}return -1;
}

折半插入排序

——找到第一个 ≥ \ge tem的元素

void InsertSort(vector<int> A){int n=A.size();int low,high,mid;for(int i=1;i<=n;i++){int tem=A[i];low=1;high=i-1;while(low<=high){mid=(low+high)/2;if(A[mid]>tem)high=mid-;elselow=mid+1;}for(int j=i--1;j>=high+1;j--)A[j+1]=A[j];A[high+1]=tem;}