Скажем, у меня есть массив [4, 1, 8, 5] и другой массив, соответствующий каждому объекту в первом массиве, например [«Четыре», «Один», «Восьмерка», "5"]. Как я могу сортировать первый массив в порядке возрастания, а также перемещать соответствующий объект во втором массиве в тот же индекс в Swift?Сортировка массива и соответствующий массив
2
A
ответ
0
Использование quick sort:
func quicksort_swift(inout a:[Int], inout b:[String], start:Int, end:Int) {
if (end - start < 2){
return
}
let p = a[start + (end - start)/2]
var l = start
var r = end - 1
while (l <= r){
if (a[l] < p){
l += 1
continue
}
if (a[r] > p){
r -= 1
continue
}
let t = a[l]
let t1 = b[l]
a[l] = a[r]
b[l] = b[r]
a[r] = t
b[r] = t1
l += 1
r -= 1
}
quicksort_swift(&a, b: &b, start: start, end: r + 1)
quicksort_swift(&a, b: &b, start: r + 1, end: end)
}
Хотя словарное решение, предложенное @NSNoob, должна быть быстрее и изящнее.
2
Не похоже лучшей практики, но это решит вашу проблему:
var numbers = [4,7,8,3]
var numbersString = ["Four","Seven","Eight","Three"]
func bubbleSort<T,Y>(inout numbers:[T],inout _ mirrorArray: [Y], _ comapre : (T,T)->(Bool)) ->() {
let numbersLength = numbers.count
for i in 0 ..< numbersLength {
for j in 1 ..< numbersLength-i {
if comapre(numbers[j-1],numbers[j]) {
swap(&numbers[j-1], &numbers[j])
swap(&mirrorArray[j-1], &mirrorArray[j])
}
}
}
}
bubbleSort(&numbers,&numbersString) { (a, b) -> (Bool) in
a<b
}
print(numbers,numbersString)
* Это является общим, следовательно, будет работать с любым типом и позволяют поставить условие
Смежные вопросы
- 1. Сортировка массива согласно значению и соответствующий ключу
- 2. Соответствующий массив и функциональный синтаксис
- 3. инкрементирующий массив, соответствующий времени сортировки
- 4. Сортировка массива и количество
- 5. сортировка массива php-массива
- 6. Сортировка массива и печать
- 7. Соответствующий массив запросов Symfony2
- 8. Сортировка массива - и слияние - алгоритм
- 9. флэш-AS3 массива и сортировка
- 10. Сортировка массива результатов
- 11. Сортировка массива многомерного массива
- 12. Сортировка массива
- 13. Сортировка и группировка многомерный массив
- 14. Массив транспонирования и соответствующий код сборки кода
- 15. Соответствующий массив JavaScript и сращивание, но сбой
- 16. сортировка массива строк и массива int
- 17. Сортировка массива чисел и строк
- 18. Сортировка массива
- 19. Сортировка и вывод многомерного массива
- 20. MIPS сортировка и массив
- 21. сортировка и группировка массива obj
- 22. Сортировка массив по ключам другого массива
- 23. Сортировка массива строк в массив объектов
- 24. Как удалить соответствующий элемент массива
- 25. Сортировка массива индексов в первичный массив
- 26. iOS Swift: сортировка массива в трехмерный массив
- 27. Сортировка Первый массив с порядком второго массива
- 28. Сортировка 2d массива в 3d-массив PHP
- 29. Сортировка массива строк и массива int
- 30. Сортировка массива массив по значению в PHP
Почему вы сохранение двух массивов в первую очередь, если они имеют взаимную зависимость? Почему бы не сделать словарь, например Key, равным 4, а значение - четыре? – NSNoob
У меня есть один массив, который состоит из словарей JSON. У меня есть другой массив, который состоит из ints, вычисленных из значений в словарях JSON. Думаю, я мог бы выполнить вычисления, а затем добавить новый ключ в каждый словарь и отсортировать его. – raginggoat