Ich möchte Partition Partition Teil zusammenführen, aber ich weiß nicht weiter. Bitte geben Sie mir einige Ideen basierend auf meiner Situation, danke!Array-Partition mit Pthread in Linux C
Serienteil:
void Partition(int arr[], int low, int high)
{
int mid;
if(low < high)
{
mid = (low + high)/2;
Partition(arr, low, mid); //first half of data
Partition(arr, mid+1, high);//second half of data
MergeSort(arr, low, mid, high);
}
}
Was ich für die parallele Version haben:
void *PartitionTask(void* rank)
{
long my_rank = (long)rank;
if(my_rank == 0)
{
int mid;
if(low < high)
{
mid = (low + high)/2;
Partition(arr, low, mid); //first half of data
Partition(arr, mid+1, high);//second half of data
MergeSort(arr, low, mid, high);
}
}
else
{
}
}
'pthread_spawn()'? Du meinst 'pthread_create()', nicht wahr? – alk
@alk Ja, natürlich! Tippen Sie es falsch, beim Nachschlagen der Man-Seite, Gewohnheiten von Erlang kriechen meine C. Vielen Dank für das darauf hin (: – Linuxxon
@ Linxxon danke! Eine Sache, ich bin mir nicht sicher. In der seriellen Version, es rekursiv aufrufen Partition In der Pthread-Version, wie kann ich das gleiche tun? Bitte geben Sie mir einen Vorschlag. – Alison