p1177求助(bushi
  • 板块灌水区
  • 楼主mc2djwh
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/9/28 10:33
  • 上次更新2024/9/28 12:38:32
查看原帖
p1177求助(bushi
1277996
mc2djwh楼主2024/9/28 10:33

用猴子排怎么t了

#include <bits/stdc++.h>
using namespace std;
void shuffle(void *x,int size_elem,int total_elem) {
	for(int i=total_elem-1;i>=0;--i) {
		int r=rand()%(i+1);
		char *a=static_cast<char*>(x)+r*size_elem;
		char *b=static_cast<char*>(x)+i*size_elem;
		for(int j=0;j<size_elem;++j) {
			swap(a[j],b[j]);
		}
	}
}
int main(){
	srand(static_cast<unsigned>(time(nullptr)));
	int n1;cin>>n1;
	int l[n1];
	for(int i=0;i<n1;i++) {
		cin>>l[i];
	}
	int isSort=0;
	while(!isSort) {
		shuffle(l,sizeof(l[0]),n1);
		isSort=1;
		for(int i=0;i<n1-1;i++) {
			if(l[i]>l[i+1]) {
				isSort=0;break;
			}
		}
	}
	for(int i=0;i<n1;i++) {
		cout<<l[i]<<" ";
	}
	cout<<endl;
	return 0;
}

2024/9/28 10:33
加载中...