| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 23 人关注过本帖
标题:1.向最大神们求助:帮我证明单向选择排序的Select最多赋值次数公式是对的;2. ...
取消只看楼主 加入收藏
huangzhenfan
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2012-7-15
结帖率:0
收藏
 问题点数:0 回复次数:0 
1.向最大神们求助:帮我证明单向选择排序的Select最多赋值次数公式是对的;2.根据不同数组长度求出Select最多赋值次数的数列组合一共有多少种的(公式)
程序代码:
void SelectSort(int a[])
{
    unsigned LoopTotal = 0, SwapCount = 0, Select, SelectCount = 0;
    for (int Index = 0; Index < N - 1; ++Index)
    {
        Select = Index;
        for (int Traverse = Index + 1; Traverse < N; ++Traverse)
        {
            if (a[Select] > a[Traverse])
            {
                Select = Traverse;       
                ++SelectCount;            
            }
            ++LoopTotal;                 
        }
        if (Select != Index)           
        {
            a[Select] ^= a[Index];        
            a[Index] ^= a[Select];
            a[Select] ^= a[Index];
            ++SwapCount;                
        }
    }
}


我说的是Select被赋值最多次数,内循环Select被赋值最多次数计算公式为:(N-1)公差为2的等差数列求和,帮我证明他是对的,2.数组长度有5个元素及5个元素以上,比如1,2,3,4,5 这5个元素有120种组合,其中有6种组合是Select被赋值次数最多的,而6个元素有720种组合,其中有x种组合是Select被赋值次数最多的,帮我把这种组合数量的公式算出来(比如:6个元素时Select被最多赋值次数有多少种组合,7个元素时Select被最多赋值次数有多少种组合...,已知5个元素是6种)

比如长度是5个元素的数列组合,就有6种如下所示的数列,Select被赋值次数是最多的,在外循环Select被赋值为N-1次,在内循环Select最多赋值次数计算公式:(N-1)公差为2的等差数列求和;
如:
3,5,4,2,1 :第一轮循环:Select=3=2=1(内循环赋值两次),第二轮循环:Select=5=4=2(内循环赋值两次),第三轮循环:Select=4=3(内循环赋值一次),第三轮循环:Select=5=4(内循环赋值一次),内循环共6次赋值
5,4,1,3,2 :第一轮循环:Select=5=4=1(内循环赋值两次),第二轮循环:Select=4=3=2(内循环赋值两次),第三轮循环:Select=5=3(内循环赋值一次),第三轮循环:Select=5=4(内循环赋值一次),内循环共6次赋值
5,4,2,1,3 :第一轮循环:Select=5=4=2=1(内循环赋值三次),第二轮循环:Select=4=2(内循环赋值一次),第三轮循环:Select=4=3(内循环赋值一次),第三轮循环:Select=5=4(内循环赋值一次),内循环共6次赋值
4,5,3,2,1 :第一轮循环:Select=4=3=2=1(内循环赋值三次),第二轮循环:Select=5=3=2(内循环赋值两次),第三轮循环:Select=5=4(内循环赋值一次),内循环共6次赋值
5,4,3,1,2 :第一轮循环:Select=5=4=3=1(内循环赋值三次),第二轮循环:Select=4=3=2(内循环赋值两次),第三轮循环:Select=5=4(内循环赋值一次),内循环共6次赋值
5,4,3,2,1 :第一轮循环:Select=5=4=3=2=1(内循环赋值四次),第二轮循环:Select=4=3=2(内循环赋值两次),内循环共6次赋值

[此贴子已经被作者于2025-11-28 05:10编辑过]

搜索更多相关主题的帖子: 赋值 Select 循环 次数 组合 
6 小时前
快速回复:1.向最大神们求助:帮我证明单向选择排序的Select最多赋值次数公式是对 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020946 second(s), 11 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved