快速排序左右区间序列显示-创新互联
创新互联公司专注骨干网络服务器租用十余年,服务更有保障!服务器租用,服务器托管 成都服务器租用,成都服务器托管,骨干网络带宽,享受低延迟,高速访问。灵活、实现低成本的共享或公网数据中心高速带宽的专属高性能服务器。【问题描述】
分享标题:快速排序左右区间序列显示-创新互联
网站网址:http://cdiso.cn/article/gioej.html
【输入形式】给定一组正整数序列(最多20个正整数序列),利用快速排序算法从小到大排序,输出第一趟排序后的左子区间序列和右子区间序列,中间用’/‘分隔。如果左子区间序列或右子区间序列为空,则相应的空序列用’-'表示。
【输出形式】正整数序列,以空格分隔,回车结束。
【样例输入】左子区间序列 / 右子区间序列,数值之间以空格分隔,左右序列之间以’/‘分隔,空序列用’-'表示。
【样例输出】49 38 65 97 76 13 27 49
【样例输入】27 38 13/76 97 65 49
【样例输出】13 38 65 97 76 27 49
C++代码-/38 65 97 76 27 49
#includeusing namespace std;
void Quicksortonce(int l, int r, int A[], int& flag) {int left = l, right = r, x = A[l];
while (left< right) {while (left< right && A[right] >= x) right--;
if (left< right) swap(A[left++], A[right]);
while (left< right && A[left]< x) left++;
if (left< right) swap(A[left], A[right--]);
}
flag = left;
}
int main() {int A[20], flag, cnt = 0;
while (cin >>A[cnt++]);
cnt--;
Quicksortonce(0, cnt - 1, A, flag);
for (int i = 0; i< cnt; i++) {if (i == flag) { if (i == 0) cout<< "-";
cout<< "/";
if (i == cnt - 1) cout<< "-";
}
else if (i + 1 == flag) cout<< A[i];
else cout<< A[i]<< " ";
}
return 0;
}
注:Cg系统第一组测试没有录入\n(回车),故要用此方法读入,此方法在本地无效。
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
分享标题:快速排序左右区间序列显示-创新互联
网站网址:http://cdiso.cn/article/gioej.html