Я пытаюсь получить 3 массива, отсортированных по одному массиву ключей в цели c для iphone, вот пример, чтобы помочь ...
Array 1 Array 2 Array 3 Array 4
1 15 21 7
3 12 8 9
6 7 8 0
2 3 4 8
Когда отсортировано, я хочу, чтобы это выглядело как
Array 1 Array 2 Array 3 Array 4
1 15 21 7
2 3 4 8
3 12 8 9
6 7 8 0
Таким образом, массив 2,3,4 перемещается с массивом 1 при сортировке.
В настоящее время я использую пузырьковую сортировку для этого, но он отстает настолько сильно, что приложение вылетает.
Код, который я использую, чтобы сделать это
int flag = 0;
int i = 0;
int temp = 0;
do
{
flag=1;
for(i = 0; i < distancenumber; i++)
{
if(distance[i] > distance[i+1])
{
temp = distance[i];
distance[i]=distance[i + 1];
distance[i + 1]=temp;
temp = FlowerarrayNumber[i];
FlowerarrayNumber[i] = FlowerarrayNumber[i+1];
FlowerarrayNumber[i + 1] = temp;
temp = BeearrayNumber[i];
BeearrayNumber[i] = BeearrayNumber[i + 1];
BeearrayNumber[i + 1] = temp;
flag=0;
}
}
}while (flag==0);
где расстояние число - это количество элементов во всех массивах, расстояние - это массив 1 или мой ключевой массив.
, а остальные 2 сортируются.
Если кто-то может помочь мне получить сортировку слиянием (или что-то более быстрое, он работает на iPhone, поэтому он должен быть быстрым и легким), чтобы сделать это, что было бы здорово, я не могу понять, как рекурсия работает в этом методе и поэтому трудно получить код для работы.
Любая помощь будет принята с благодарностью