作者在 2020-03-16 11:00:35 发布以下内容
有心栽花花也开,无心插柳柳成荫,这个可用于分治排序,速度一定会提高.
void 升降分段(int* sz, int l)
{//缘由https://bbs.bccn.net/viewthread.php?tid=499776&pid=2721823&page=1#pid2721823
int j = 1, z = 0; bool k = sz[0] >= sz[1], k1 = true;
while (++j < l)
{
k1 = sz[j] >= sz[j + 1];
if ((!k && !k1) || (k && k1));
else
{
while (z <= j)cout << sz[z++] << ends;//效果1
if ((j + 2) < l)
k = sz[j + 1] > sz[j + 2];//效果2
//k = k1, --j, --z;//效果3
cout << endl;
}
}
if ((j - z) > 1)while (z < j)cout << sz[z++] << ends;
}
int aa[]{1,20,30,12,3,5,7,4,6,100};
升降分段(aa, sizeof(aa) / sizeof(aa[0]));