首页 > 试题广场 >

长度为n的数组乱序存放着0至n-1. 现在只能进行0与其他数

[问答题]
长度为n的数组乱序存放着0至n-1. 现在只能进行0与其他数的swap,请设计并实现排序。
有一个位置标志位0的位置,使用冒泡法
当两个换位置时,需要0来参与
void swap(int post1,int post2,int data[],int post0){
int post0=swap(post1,post0,data);
int post0=swap(post2,post0,data);
int post0=swap(post1,post0,data);
}
发表于 2018-08-01 16:53:15 回复(0)
#include<iostream> using namespace std; void swap(int &a, int &b) { a=a^b; b=a^b; a=a^b; } void msort(int a[], int n) { int i=0; while(i<n) { if(a[i]==i) i++; else swap(a[i],a[ a[i] ]); } } int main() { int a[6]={5,4,3,1,2,0}; msort(a,6); int i=0; for(i=0; i<6; i++) cout<<a[i]<<endl; }
发表于 2018-08-01 16:21:45 回复(0)