작은 알고리즘을 작성 중이므로 반복하지 않고 배열의 항목 조합을 모두 계산해야합니다. 지금까지이 코드를 아래에서 사용했지만 지금은 너무 오래 걸리기 때문에이 프로세스의 속도를 높여야합니다. Swift (코드가 Mac에서 실행 됨)와 동시성을 구현하려고 시도했지만 불행히도 작동하지 않습니다.스위프트를 사용하여 멀티 스레딩 배열의 항목 조합
내가 사용하고있는 알고리즘은 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의 경우 위의 코드가 제대로 작동하지만 동시성 구현을 시도했습니다. 조합은 동시에 문자 그대로 아무것도하지 않았고 코드는 오류를 던지지 않고 실행되었습니다. –