数组 – Swift:二进制搜索标准数组?
发布时间:2020-12-14 05:20:04 所属栏目:百科 来源:网络整理
导读:我有一个排序的数组,并想做二进制搜索. 所以我在问Swift图书馆中是否有可用的排序等等?还是有一个类型的独立版本可用? 当然我可以用自己写的,但是我想避免重新发明轮子. 从 here回答改进(通用) func binarySearchT:Comparable(inputArr:ArrayT,searchItem:
我有一个排序的数组,并想做二进制搜索.
所以我在问Swift图书馆中是否有可用的排序等等?还是有一个类型的独立版本可用? 当然我可以用自己写的,但是我想避免重新发明轮子.
从
here回答改进(通用)
func binarySearch<T:Comparable>(inputArr:Array<T>,searchItem: T)->Int?{ var lowerIndex = 0; var upperIndex = inputArr.count - 1 while (true) { var currentIndex = (lowerIndex + upperIndex)/2 if(inputArr[currentIndex] == searchItem) { return currentIndex } else if (lowerIndex > upperIndex) { return nil } else { if (inputArr[currentIndex] > searchItem) { upperIndex = currentIndex - 1 } else { lowerIndex = currentIndex + 1 } } } } var myArray = [1,2,3,4,5,6,7,9,10]; if let searchIndex = binarySearch(myArray,5){ println("Element found on index: (searchIndex)"); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |