数组的正负排序

描述

对n个关键字取整数值的记录序列进行整理,以使所有关键字为负值的记录排在关键字为非负值的记录之前,要求:

①采用顺序存储结构,至多使用一个记录的辅助存储空间;

②算法的时间复杂度为O(n)。

输入

多组数据,每组数据两行。第一行为序列的长度n,第二行为序列的n个元素(元素之间用空格分隔,元素都为整数)。当n等于0时,输入结束。

输出

每组数据输出一行,为排序后的序列。每两个元素之间用空格隔开。

输入样例 1 

6
1 2 3 4 -1 2
5
-1 2 3 -2 4

输出样例 1

-1 2 3 4 1 2
-1 -2 3 2 4
#include <iostream>
using namespace std;


int Ex(int a[],int m)
{
	int i,j;
		
	int k=0;
	for(i=0;i<m;i++)
	{
		if(a[i]<0)
		{
			int temp;
			temp=a[k];
			a[k]=a[i];
			a[i]=temp;
			k++;
		}
	}
	for(i=0;i<m;i++)
	{
		cout<<a[i];
		if(i!=m-1)cout<<" "; 
	}
	cout<<endl;
	return 0;	
}


int main()
{
	while(1)
	{
		int m;int i,j;
		cin>>m;
		if(0==m) break;
		int a[m];
		for(i=0;i<m;i++)
			cin>>a[i];
		Ex(a,m);
	}
 }
发布了110 篇原创文章 · 获赞 4 · 访问量 5189

猜你喜欢

转载自blog.csdn.net/weixin_43673589/article/details/104453327