如何计算优化的Bozosort中的平均比较数

问题描述

bozosort是一种慢速排序算法:数组中的两个元素被随机均匀地拾取,并且如果它们进行求反则交换(如果i a [j],则为n)。我们必须找到一个比较的平均数,以对给定的1到10个不重复的数字数组进行排序。 例如,对于1 2 3 4 5 6 7 8 9 10交换数为0 对于2 1 3 4 5 6 7 8 9 10交换数是?(10,2)= 45 我认为这很简单:计算反转次数并乘以C(10,2)。但是运行测试后,我发现我的解决方案不正确

 double sort(vector<int>& a) { 
        double count = 0;
      for (int i = 0; i < a.size() - 1; i++)
          for (int j = i + 1; j < a.size(); j++)
          if (a[i] > a[j]) count++; 
      return count;
      }
double val = 45.000000;
 cout  << val * sort(vect) << endl;

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)