![]() |
1
16
我在程序中看到了至少两个问题:
问题1:
是不正确的。应该是:
因为
不正确,应该是:
在前面和最后一个相等的情况下,循环继续,但是 无论前面还是最后一个都不会在这一点上被修改,导致无限循环。 当前面和最后一个相等时,就没有必要继续,你的数组 那时就会被分类了。 |
![]() |
2
22
你是说这个数组只有
求和所有n个元素,然后覆盖数组:)
|
![]() |
3
5
您的算法的基本思想运行良好,可以简化实现:
注意
|
![]() |
4
4
你对自己太苛刻了!你只知道数组的大小就可以在o(n)中完成。
一旦知道了这一点,只需输出一个包含
另一种不需要先求和并在适当位置工作的方法是:放置一个“写入”指针
|
![]() |
5
2
保留最后一个零索引的轴,并从左到右交换所有数字,直到到达数组的末尾。 |
![]() |
6
1
如果您的目标是o(n)忽略所有quickport(nlogn)、bubblessets等。对于标准数据集,没有经典排序算法实现o(n),则必须利用集的二进制性质。
|
![]() |
7
1
|
![]() |
8
1
一般的解决方案(如果它不仅是0和1)被称为“按计数排序”。如果您知道数据在某个范围内,则始终可以使用它。例如,您希望按一组人的出生日期(不包括年份)对他们进行排序。 您只需创建一个367(闰年)天的数组,该数组中的每个槽都是一个(链接的)列表,可以保存您的数据。 现在,您将扫描您的数据,从Peerson的生日开始计算“一年中的某一天”,并将其添加到认可的列表中。 |
![]() |
9
1
|
![]() |
10
0
您的代码不会在我的系统中进入无休止的循环:
但是结果是错误的。我看到8乘以1,但应该是9乘以1。 正如一些人指出的,总结是一种简单得多的方法:
|
![]() |
11
0
在这里转载,因为我回答的问题被关闭了(这个问题的副本)。 我很抱歉用python回答这个问题,但这是我想做的练习。这段代码的意思是冗长的,以输出算法的步骤。当然,转换为C并不困难,只要小心移动指针。干杯!
样品输出:
|
![]() |
12
0
显然另一个问题已经解决了…你的算法工作得很好。我发表的回应 maddy 表面上看 dup 在这里被一个关闭它的人重定向了
将一些行移动到一起以使其适合页面….差不多一样 |
![]() |
13
0
以下是一个简单的答案:)
|
![]() |
14
0
这可以用一个简单的二进制文件来完成。 counting sort :
|
![]() |
15
0
这应该很管用。只有一个循环可以完成这项工作。
|
![]() |
16
0
下面是C实现,它将在O(N)时间内给出解决方案。
|
![]() |
feasega · 聚合物模拟-2个节点之间的最短路线,适用于所有节点 9 月前 |
![]() |
Alisa Petrova · 在有向图中更改一对顶点以创建循环 9 月前 |
![]() |
Pengcheng · 这个简单的递归函数的输出是什么?你能详细解释一下吗? 10 月前 |
![]() |
b39b332d · 使用C++标准库实现高效间隔存储 1 年前 |
![]() |
ABGR · 二叉树的直径——当最长路径不通过根时的失败案例 1 年前 |
![]() |
EpicAshman · 数独棋盘程序中同一列和同一行出现两次的数字 1 年前 |