神奇的Knuth洗牌算法---算法集

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int i,n;
	cin>>n;
	int arr[n];
	for(i=0;i<n;i++)
		cin>>arr[i];
	for(i=0;i<n;i++)
	    swap(arr[i],arr[rand()%(i+1)]);
	for(i=0;i<n;i++)
	    cout<<arr[i]<<" ";
	return 0;
} 

不同的算法设计真的不一样,以这样简短的算法来实现洗牌是很nice啊!

发布了106 篇原创文章 · 获赞 53 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_43595030/article/details/104077706