编写一个程序,随机生成10个1~20的整数,设计一个搞笑算法找其中最大元素和最小元素,并统计元素之间的比较次数。调用该算法执行10次求平均比较次数
这题没啥意思,随机数产生,求平均,再怎么求总得把所有数都走一遍吧?最大最小替换,自然次数最少都得20次,代码如下:
#define shuiyunsheng 6666
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include<algorithm>
#include<ctime>
using namespace std;
int main() {
srand((int)time(0));
int sum = 0;
for (int j = 0; j < 10; j++)
{
int a[10];
for (int i = 0; i < 10; i++)
{
a[i] = rand() % 20+1;
}
int max = 0, min = 10,cnt = 0;
for (int i = 0; i < 10; i++)
{
if (max < a[i])max = a[i];
if (min > a[i]) min = a[i];
cnt += 2;
}
for (int i = 0; i < 10; i++)
{
cout << a[i] << " ";
}
cout << "当前数的计算次数是" << cnt;
sum += cnt;
cout << "\n" <<"当前随机序列最大值为" << max <<"最小值为" << min;
cout<< "\n";
}
cout << "总平均为" << sum / 10;
}