【发布时间】:2018-01-05 08:52:44
【问题描述】:
我有一个表示它们自己的字符串的整数数组。
我知道有一些简单的方法可以对整数数组进行排序,但我需要这样做,以便整数保留它们与字符串的对应关系。
这是我当前的代码:
var i = 0
var highestValueObjectInArray = 0
for object in createTimerData.speechTimeStamps {
if object > highestValueObjectInArray {
highestValueObjectInArray = object
}
}
while i + 1 < createTimerData.speechTimeStamps.count {
if createTimerData.speechTimeStamps[i] < createTimerData.speechTimeStamps[i + 1] {
let TS2 = createTimerData.speechTimeStamps[i + 1]
let TSS2 = createTimerData.speechText[i + 1]
createTimerData.speechTimeStamps.remove(at: i + 1)
createTimerData.speechTimeStamps.insert(TS2, at: i)
createTimerData.speechText.remove(at: i + 1)
createTimerData.speechText.insert(TSS2, at: i)
}
i += 1
if i+1 >= createTimerData.speechTimeStamps.count {
var lastItem = highestValueObjectInArray + 1
var inDescendingOrder = true
for object in createTimerData.speechTimeStamps {
if object < lastItem {} else { inDescendingOrder = false }
lastItem = object
}
if inDescendingOrder == false {
i = 0
}
}
}
它非常慢且效率不高,因此在对大型数组进行排序时需要大量时间。有没有我忽略的方法,或者更有效的方法。
任何帮助将不胜感激,谢谢。
【问题讨论】:
-
使用一个数组和一个字典来做到这一点,甚至是一个元组数组
-
你试图对一个数组进行排序是什么?你能再解释一下吗?
-
一个整数数组,我希望字符串数组遵循相同的排序,这样整数和字符串仍然相互匹配
-
您可以使用元组数组 (int,String) 来执行此操作,如果您需要,我可以提供一些示例
-
这意味着改变我的代码的整个工作方式