Swift 快速排序数组
我想对数组进行排序 像这样:Swift 快速排序数组,swift,algorithm,Swift,Algorithm,我想对数组进行排序 像这样: let elements = ["S","A","C","C","T","E","E","E","F","S","S","A","A","C"] 我试过这么做 var currentElement = "" var newElements:[String] = [] for element in elements { if currentElement != element{ currentElement = element
let elements = ["S","A","C","C","T","E","E","E","F","S","S","A","A","C"]
我试过这么做
var currentElement = ""
var newElements:[String] = []
for element in elements {
if currentElement != element{
currentElement = element
newElements.append(element)
}
}
但是打印[“S”、“A”、“C”、“T”、“E”、“F”、“S”、“A”、“C”]
如何将其排序到
[“A”、“C”、“E”、“F”、“S”、“T”]
您要做的是删除重复项,然后对其进行排序,对吗
您可以将其转换为集合
,然后调用排序()
:
应该使用ComparisonResult按字母顺序对数组进行排序,因为Set(elements).sorted()和小写字符会导致排序结果错误
var elements = ["S","A","C","C","T","E","E","E","F","S","S","A","A","C"]
elements = elements.sorted { $0.localizedCaseInsensitiveCompare($1) == ComparisonResult.orderedAscending }
//the output["A", "A", "A", "C", "C", "C", "E", "E", "E", "F", "S", "S", "S", "T"]
Wtf,你甚至没有在你的if条件下排序任何东西,它甚至没有尝试排序任何东西,你只是在抑制重复!在我看来,这很像是一种你不想做的家庭作业,回去工作,在谷歌上搜索。首先:唯一值:然后排序:你救了我的命,谢谢!!
["A", "A", "A", "C", "C", "C", "E", "E", "E", "F", "S", "S", "S", "T"]
let elements = ["S","A","C","C","T","E","E","E","F","S","S","A","A","C"]
let newElements = Set(elements).sorted() // ["A", "C", "E", "F", "S", "T"]
var elements = ["S","A","C","C","T","E","E","E","F","S","S","A","A","C"]
elements = elements.sorted { $0.localizedCaseInsensitiveCompare($1) == ComparisonResult.orderedAscending }
//the output["A", "A", "A", "C", "C", "C", "E", "E", "E", "F", "S", "S", "S", "T"]