起因
在论坛上看到的问题,给你一个字符串数组,找出他们所有存在两个或者两个以上相同的字符串,例如数组[@”a”,@”b”,@”c”,@”a”],那么找出的应该是[@”a”],(提示:给的数组个数可能非常大,请注意算法效率).请编程
所以就写了一下,写完了之后又测了下速度,发现大有惊喜!
挫败
首先我的想法是每找到一组相同的字符串就把数组中这个字符串删除
我是用swift写的,写了以后看到论坛的回帖中有一个比较好的方法使用range和set的组合就顺手试了试。没想到我写的居然和那个慢了一个数量级。
不甘心
这时候我还是不甘心啊,凭什么啊,明明那种算法会多处理数据我的不会啊。
反击
所以我试了试用swift写了一遍回帖的方法。但是有一些问题写不下去,因为方法不太一样。写出来的比OC的慢,但是我发现慢的有点离谱啊!
绝地反击
然后我用OC写了一遍我的方法,这时候我的世界是充满傲娇的,比回帖的set&range方法快了一个数量级,开心开心。
反思
从这几个实验中发现 swift在这方面的处理上慢了OC一个数量级啊 明显要等好长时间
上图
OC中回帖的方法
swift中回帖方法有瑕疵
swift中我的方法
OC中我的方法
总结
可以发现 swift在这方面真的很差啊同样的算法差了好几个数量级
25.34秒VS0.33秒完败啊