乱数の大規模な配列に対してバブルソートを実行し、そのパフォーマンス時間を確認する必要がある、非常に単純な (または少なくともそうあるべき) 割り当てがあります。次に、配列を半分に分割し、半分を一方のスレッドで、もう一方を別のスレッドでソートし、その方が速いかどうかを確認することを除いて、同じことを行う必要があります。
私はこれまで C を扱ったことがなかったので、ポインタに関しては完全に無知で、Java しか扱っていませんでした。バブルソートを機能させようとしている限り、これが私のコードです。
#include <string.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/wait.h>
#include <stdlib.h>
#include <libgen.h>
int main() {
int *array[50000];
for(int i = 0; i < 50000; i++) {
array[i] = 1;
}
bubbleSort(array, 50000);
}
void bubbleSort(int *numbers[], int *array_size) {
int i, j, temp;
for(i = (array_size - 1); i > 0; i--) {
for(j = 1; j <= i; j++) {
if(numbers[j-1] > numbers[j]) {
temp = numbers[j-1];
numbers[j-1] = numbers[j];
numbers[j] = temp;
}
}
}
for(int i = 0; i < 10; i++) {
printf(numbers[i]);
}
}
ここでやろうとしているのは、配列を並べ替えてから、最初の 10 個の数字を出力して、それが機能していることを確認することだけです。あらゆる種類のポインタ エラーが発生しています。
"bubbleSort.c", line 11: warning: improper pointer/integer combination: op "="
"bubbleSort.c", line 13: warning: implicit function declaration: bubbleSort
"bubbleSort.c", line 16: identifier redeclared: bubbleSort
current : function(pointer to pointer to int, pointer to int) returning void
previous: function() returning int : "bubbleSort.c", line 13
"bubbleSort.c", line 18: warning: improper pointer/integer combination: op "="
"bubbleSort.c", line 21: warning: improper pointer/integer combination: op "="
"bubbleSort.c", line 23: warning: improper pointer/integer combination: op "="
"bubbleSort.c", line 28: warning: argument #1 is incompatible with prototype:
prototype: pointer to const char : "/usr/include/iso/stdio_iso.h", line 206
argument : pointer to int
cc: acomp failed for bubbleSort.c