私は小さなアルゴリズムを書いており、繰り返しのない配列のアイテムのすべての組み合わせを計算する必要があります。今まで私は以下のコードを使用しましたが、時間がかかりすぎるため、このプロセスをスピードアップする必要があります。 私はSwift(コードはMac上で動作します)と並行処理を実装しようとしましたが、残念ながら動作しません。Swiftを使用してマルチスレッドで配列されたアイテムの組み合わせ
私が使用しているアルゴリズムはhttp://www.geeksforgeeks.org/print-all-possible-combinations-of-r-elements-in-a-given-array-of-size-n/から取得され、その後CからSwiftに変換されました。 この問題を解決するために私を助けてください。
func printCombination(arr: [Int], r: Int) {
trips.removeAll()
var data: [Int] = []
for _ in 1...r
{
data.append(Int())
}
combinationUtil(arr: arr, r: r, index: 0, data: data, i: 0)
}
func combinationUtil(arr: [Int], r: Int, index: Int, data: [Int], i: Int) {
var data: [Int] = data
if (index == r)
{
for j in 0..<r {
array.append(data[j])
}
return
}
if (i >= arr.count) {
return
}
data[index] = arr[i]
combinationUtil(arr: arr, r: r, index: index + 1, data: data, i: i + 1)
combinationUtil(arr: arr, r: r, index: index, data: data, i: i + 1)
}
/* arr[] ---> Input Array
r ---> Size of a combination to be printed
index ---> Current index in data[]
data[] ---> Temporary array to store current combination
i ---> index of current element in arr[] */
"機能しません"というものを役に立つものにすることはできますか?何が起こりたいのですか?代わりに何が起こりますか? –
あなたは実際にスイフトに精通していますか?そのコードは、Cから移植された行ごとだけだったようです。 –
Phillip Millsについては、上記のコードはうまくいきます。並行処理を実装しようとしました。これは、文字通り何もしなかったため、コードはエラーを投げずに実行されました。 –