Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 算法:将元素分布到彼此远离的地方_Algorithm_Sorting - Fatal编程技术网

Algorithm 算法:将元素分布到彼此远离的地方

Algorithm 算法:将元素分布到彼此远离的地方,algorithm,sorting,Algorithm,Sorting,我有一个排序整数数组。给定一个整数N,我需要把N个最大的元素放得离彼此更远,这样它们之间就有了最大的空间。其余的元素应该放在这些大项目之间。例如,N=3的10数组将导致[0,5,8,2,6,9,3,7,10,4] publicstaticvoidmain(字符串[]args){ int[]start={10,9,8,7,6,5,4,3,2,1}; int[]end=新的int[10]; int N=4; int步长=数学圆(start.length/N); int y=0; 整数计数=0; 对于

我有一个排序整数数组。给定一个整数N,我需要把N个最大的元素放得离彼此更远,这样它们之间就有了最大的空间。其余的元素应该放在这些大项目之间。例如,N=3的10数组将导致[0,5,8,2,6,9,3,7,10,4]

publicstaticvoidmain(字符串[]args){
int[]start={10,9,8,7,6,5,4,3,2,1};
int[]end=新的int[10];
int N=4;
int步长=数学圆(start.length/N);
int y=0;
整数计数=0;
对于(int i=0;i对于(int j=i;j您有一个
K
元素数组。您有
N
需要分配的最大数量。然后:

  • 步骤:=K/N
    (删除剩余部分)
  • N
    最大值中取任意数字,并将其插入
    步骤/2
    位置
  • 取其他最大值,并在
    步数
    距离处插入上一个插入的最大值之后
  • 给出
    [1,2,3,4,5,6,7,8,9,10]
    .So
    K=10
    N=3
    。然后
    Step=3
    。因此第一个最大值位于
    3/2
    位置

    [1,10,2,3,4,5,6,7,8,9]

    然后将其他
    2
    放置在彼此之间的
    3
    距离处:

    [1,10,2,3,9,4,5,8,6,7]

    守则:

    std::vector Distribute(std::vector A源,整数)
    {
    auto step=aSource.size()/aNumber;//注意整数除法。
    对于(int i=0;istd::这听起来像是一个家庭作业。展示你所做的尝试,然后社区会帮助你了解你的错误所在。那么为什么不
    [8,0,1,2,3,9,4,5,6,7,10]
    呢?你使用循环索引吗?数组[0]是最大的数字,数组按降序排序。@Sean请参见上面我的代码Java@Angelina,这个解不能处理零。它的复杂度是n平方。step/2不能给出整数,它需要是array@Angelina,正如我在文章中指出的,余数不使用。2从何而来de>步骤/2
    ?为什么是2?@Angelina,不是2。它是1。在编程中,我们通常从0开始计数。真有趣!哈哈
    6, 5, 4, 7, 3, 2, 1, 0, 8, -1, -2, -3, -4, 9, -5, -6, -7, -8, 10, -9, -10,