当前位置: 首页 > 知识库问答 >
问题:

排序数组和相应数组[重复]

桓修能
2023-03-14

假设我有and数组[4,1,8,5]和另一个数组,它对应于第一个数组中的每个对象,比如[“四”,“一”,“八”,“五”]。如何在Swift中将第一个数组按升序排序,同时将第二个数组中的相应对象移动到相同的索引中?

共有1个答案

戚明朗
2023-03-14

听起来不像是最佳实践,但这会解决您的问题:

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)

*这是通用的,因此将适用于任何类型,并允许您提供条件

 类似资料:
  • 我想写一个时间O(n*lgk)的算法,将k个排序数组合并成一个排序数组,其中n是所有输入数组的元素总数。 你能告诉我怎么做吗? 编辑:我编写了以下算法: 你能告诉我这是否正确吗?

  • 有没有更时髦的方法来解决这个问题?

  • 问题内容: 我在Swift中有一个包含一些对象ID的数组,而我有另一个包含这些对象及其ID的数组,所以像这样: 现在,id数组以某种自定义顺序排序,而我需要以相同顺序对对象数组进行排序。因此,例如: 所以我基本上需要实现这种重新排序方法。有谁有聪明的建议如何在Swift中做到这一点?我正在使用Swift 3,因此所有新API都可以使用。 问题答案: 您可以排序以遵循书面要求 另一个例子 这段代码在

  • 我有一个多维numpy数组,其中包含代表一个框的四个点(坐标): [开始X,开始Y],[结束X,开始Y],[结尾X,结束Y],[开始X,结束Y] 一个例子: 因为每个框都代表一个单词在图像中的位置,所以我想按照阅读的方式对这些框进行排序。从左上角开始,到右下角结束。我正在考虑按框的起始值排序: 这很好。现在,我必须将每个高度上与另一个重叠的框分组为一行。我用以下方法进行检查: 将分组框放在一行上,