//题目:给定含有n个元素的数组a,其中包括0元素和非零元素,对数组排序,要求:
//排序后所有0元素在前,所有非零元素在后,且非零元素排序前后相对位置不变,不能使用额外的存储空间。
#include<iostream>
using namespace std;
void Partition(int a[],int low,int high)//一次快速排序
{
int i = high+1;
for(int j = high;j>=low;--j)
{
if(a[j]!=0)
{
--i;
swap(a[i],a[j]);
}
}
}
void main()
{
int a[7] = {0,3,0,2,1,0,0};
Partition(a, 0, 6);
for(int i = 0;i<7;++i)
cout<<a[i]<<' ';
cout<<endl;
}
对数组排序,要求相对位置不变
最新推荐文章于 2023-01-07 16:39:04 发布