Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 快速排序数组_Swift_Algorithm - Fatal编程技术网

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"]