长度为N的数组乱序存放着0到N-1.现在只能进行0与其他数的swap操作,请设计并实现排序,必须通过交换实现排序
#include <iostream>
using namespace std;
void sort(int a[], int n)
{
int zeroPos = 0;
for (int i = 0; i < n; i++)
{
if (a[i] == 0)
{
zeroPos = i;
break;
}
}
for (int i = 1; i < n; i++)
{
while (a[i] != i)
{
swap(a[zeroPos], a[a[i]]);
zeroPos = a[i];
swap(a[zeroPos], a[i]);
zeroPos = i;
}
}
}