这是两个非常相似的Levenshtein Distance algorithms.
Swift实施:https:
//gist.github.com/bgreenlee/52d93a1d8fa1b8c1f38b
并Objective-C实施:https:
//gist.github.com/boratlibre/1593632
在swift一个是慢得多然后ObjC执行我已经派几个小时,使其速度更快,但......好像Swift阵列和Strings不一样快的操作objC.
2000年的random Strings计算Swift实施速度大约慢了100(!!!)倍ObjC.
老实说,我不知道什么可能是错的,因为即使这部分也很快
func levenshtein(aStr: String, bStr: String) -> Int {
// create character arrays
let a = Array(aStr)
let b = Array(bStr)
...
Run Code Online (Sandbox Code Playgroud)
比整个算法慢几倍 Objective C
有谁知道如何加速swift计算?
先感谢您!
附加
在所有建议的改进之后,swift代码看起来像这样.它在发布配置中比ObjC慢4倍.
import Foundation
class Array2D {
var cols:Int, rows:Int
var matrix:UnsafeMutablePointer<Int>
init(cols:Int, rows:Int) …Run Code Online (Sandbox Code Playgroud)