x的功能是什么?

zdh666zdh 2016-07-02 02:37:13
求大神解决
...全文
147 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2016-07-02
  • 打赏
  • 举报
回复
说是排序就被什么道理了,要说是打乱原来的次序,到也还说的过去(扰码) 对于你给的两组参数,由于计算下标时是对 (m + n) 取模,所以运算根本就到达不了 (m + n) 及以后
zdh666zdh 2016-07-02
  • 打赏
  • 举报
回复
引用 11 楼 天天天天天天天天天天天天的回复:
[quote=引用 9 楼 zdh666zdh 的回复:] [quote=引用 7 楼 天天天天天天天天天天天天的回复:]环线排序了。。
老师说功能是循环排序[/quote]一个意思,两个int参数是干嘛用的?[/quote] 两个参数和等于数组的长度
巴士上的邂逅 2016-07-02
  • 打赏
  • 举报
回复
引用 9 楼 zdh666zdh 的回复:
[quote=引用 7 楼 天天天天天天天天天天天天的回复:]环线排序了。。
老师说功能是循环排序[/quote]一个意思,两个int参数是干嘛用的?
zdh666zdh 2016-07-02
  • 打赏
  • 举报
回复
引用 8 楼 xuzuning的回复:
果然 x(a, 5, 6); 后,再 x(a, 5, 6); 数组 a 还原了 那么 x 方法的功能就是扰码了 当参数 m、n 很大时,迷惑性是很大的。
老师说目的是循环排序。
zdh666zdh 2016-07-02
  • 打赏
  • 举报
回复
引用 7 楼 天天天天天天天天天天天天的回复:
环线排序了。。
老师说功能是循环排序
xuzuning 2016-07-02
  • 打赏
  • 举报
回复
果然 x(a, 5, 6); 后,再 x(a, 5, 6); 数组 a 还原了 那么 x 方法的功能就是扰码了 当参数 m、n 很大时,迷惑性是很大的。
巴士上的邂逅 2016-07-02
  • 打赏
  • 举报
回复
环线排序了。。
xuzuning 2016-07-02
  • 打赏
  • 举报
回复
这没有关系,重新赋值也看不出规律 我想,如果是参数合适的话,应该会还原的(这个已经很接近了)
引用 5 楼 yuankaiwsl 的回复:
int[]是引用类型在执行完第一个x(),a已经变了。。。
巴士上的邂逅 2016-07-02
  • 打赏
  • 举报
回复
引用 4 楼 xuzuning 的回复:
Grand Central Dispatch (GCD) 是Apple开发的一个多核编程的解决方法。 因为是发在 C#,所以显然不是这个 最大公约数(greatest common divisor,简写为gcd 这个有点像
        static void Main(string[] args)
        {
            int[] a = {17,20,63,82,47,52,13,74,38,60,31,96,86,78,26,51,39,49,95,64,78};
            x(a, 5, 6);
            Console.WriteLine(string.Join(",", a));
            //52,13,74,38,60,31,17,20,63,82,47,96,86,78,26,51,39,49,95,64,78

            x(a, 6, 4);
            Console.WriteLine(string.Join(",", a));
            //17,20,63,82,52,13,74,38,60,31,47,96,86,78,26,51,39,49,95,64,78
        }
        static void x(int[] a, int m, int n)
        {
            int g = gcd(m, n);
            for (int s = 0; s < g; s++)
            {
                int p = a[s];
                int k = s;
                while (true)
                {
                    int z = (k + m) % (m + n);
                    a[k] = a[z];
                    if (z == s)
                    {
                        a[k] = p;
                        break;
                    }
                    else k = z;
                }
            }
        }
        static int gcd(int a, int b)
        {
            if(a % b > 0)
                return gcd(b, a % b);
            else
                return b;
        } 
但仍看不出在干什么
int[]是引用类型在执行完第一个x(),a已经变了。。。
xuzuning 2016-07-02
  • 打赏
  • 举报
回复
Grand Central Dispatch (GCD) 是Apple开发的一个多核编程的解决方法。 因为是发在 C#,所以显然不是这个 最大公约数(greatest common divisor,简写为gcd 这个有点像
        static void Main(string[] args)
        {
            int[] a = {17,20,63,82,47,52,13,74,38,60,31,96,86,78,26,51,39,49,95,64,78};
            x(a, 5, 6);
            Console.WriteLine(string.Join(",", a));
            //52,13,74,38,60,31,17,20,63,82,47,96,86,78,26,51,39,49,95,64,78

            x(a, 6, 4);
            Console.WriteLine(string.Join(",", a));
            //17,20,63,82,52,13,74,38,60,31,47,96,86,78,26,51,39,49,95,64,78
        }
        static void x(int[] a, int m, int n)
        {
            int g = gcd(m, n);
            for (int s = 0; s < g; s++)
            {
                int p = a[s];
                int k = s;
                while (true)
                {
                    int z = (k + m) % (m + n);
                    a[k] = a[z];
                    if (z == s)
                    {
                        a[k] = p;
                        break;
                    }
                    else k = z;
                }
            }
        }
        static int gcd(int a, int b)
        {
            if(a % b > 0)
                return gcd(b, a % b);
            else
                return b;
        } 
但仍看不出在干什么
巴士上的邂逅 2016-07-02
  • 打赏
  • 举报
回复
1、结果51 39 49 95 64 48 17 20 63 82 47 52 13 74 38 60 31 96 85 78 26 2、结果13 74 38 60 17 20 63 82 47 52 31 96 85 78 26 51 39 49 95 64 48 3、没看出来
zdh666zdh 2016-07-02
  • 打赏
  • 举报
回复
引用 1 楼 天天天天天天天天天天天天的回复:
g=***,是什么
int g=GCD(m,n)
巴士上的邂逅 2016-07-02
  • 打赏
  • 举报
回复
g=***,是什么

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧