算法小白——打乱数组

题目

将一个从小到大排列好的数组a[100]随机打乱,可以利用rand()函数,不许利用额外的空间,时间复杂度最好为O(n)。

思路

交换位置,位置随机

代码

void F(int *a)
{
	int p;
	p = rand();
	int cache = 0;
	p = p % 100;
	for (int i = 0; i < 100; i++)
	{
		p = p % (100 - i);
		cache = a[i];
		a[i] = a[p];
		a[p] = cache;
		p = rand();
	}
}
发布了28 篇原创文章 · 获赞 13 · 访问量 7041

猜你喜欢

转载自blog.csdn.net/weixin_44076906/article/details/104486243