网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

快速排序左右区间序列显示-创新互联

cg

创新互联公司专注骨干网络服务器租用十余年,服务更有保障!服务器租用,服务器托管 成都服务器租用,成都服务器托管,骨干网络带宽,享受低延迟,高速访问。灵活、实现低成本的共享或公网数据中心高速带宽的专属高性能服务器。【问题描述】

给定一组正整数序列(最多20个正整数序列),利用快速排序算法从小到大排序,输出第一趟排序后的左子区间序列和右子区间序列,中间用’/‘分隔。如果左子区间序列或右子区间序列为空,则相应的空序列用’-'表示。

【输入形式】

正整数序列,以空格分隔,回车结束。

【输出形式】

左子区间序列 / 右子区间序列,数值之间以空格分隔,左右序列之间以’/‘分隔,空序列用’-'表示。

【样例输入】

49 38 65 97 76 13 27 49

【样例输出】

27 38 13/76 97 65 49

【样例输入】

13 38 65 97 76 27 49

【样例输出】

-/38 65 97 76 27 49

C++代码
#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://bjjierui.cn/article/gioej.html

其他资讯