我正在尝试在Swift中实现基数排序(严格来说是无聊的)。到目前为止,我的工作基于here找到的C / C ++方法。
在大多数情况下,一切都按照我的预期工作,除了一个让我麻烦的for循环。
for (int exp = 1; max / exp > 0; exp *= 10)
Swift不再允许C风格循环,所以这不会飞。我一直试图用几种方法重建循环,包括:
var exp: Int = 1
for _ in (1..<(max / exp)).reversed()
{
//My code
exp = exp * 10
}
这里的问题是Int
在循环的几次迭代之后不能包含exp
的大小。由于原始循环定义在Objective-C中运行得很好,我相信我的完整方法存在缺陷,但我无法看到。
有什么想法吗?