快速排序
mshobtp
这个作者很懒,什么都没留下…
展开
-
C++分治法--最近对问题
最近对问题:最近对问题要求在一个包含n个点的集合中找出距离最近的两个点。严格地讲,距离最近的点可能多于一个,简单起见,只找出其中的一对即可。最近对问题的分治策略如下:(1)划分:将集合S分成两个子集S1和S2,根据平衡子问题原则,每个子集中大约有n/2个点,设集合S的最近点对是pi\displaystyle p_ipi和pj\displaystyle p_jpj(1≤\displaystyle\leq≤i,j≤\displaystyle\leq≤n),则会出现以下三种情况:1.pi∈S1\dis原创 2020-10-24 17:19:22 · 3564 阅读 · 1 评论 -
求数组中最接近的两个元素的差
设计算法求数组中相差最小的两个元素(称为最接近数)的差。#include<iostream>using namespace std;int Partition(int r[],int first,int end){ int i=first,j=end; while(i<j) { while(i<j&&r[i]<=r[j]) j--; if(i<j) {原创 2020-10-18 10:15:46 · 1235 阅读 · 0 评论 -
快速排序
快速排序:设函数Partition实现对序列r[first]~r[end]进行划分,快速排序对各个子序列的排序是就地进行,不需要合并子问题的解。#include<iostream>using namespace std;int Partition(int r[],int first,int end) //划分{ int i=first,j=end; //初始化待划分区间 while(i<j) {原创 2020-10-06 09:29:39 · 116 阅读 · 0 评论