ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

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

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

二分

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;}
返回列表