【发布时间】:2010-05-30 17:38:34
【问题描述】:
我正在尝试在目标 c 中为 iphone 获取 3 个按一个键数组排序的数组,这是一个帮助示例...
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 上运行,因此它需要快速和轻便)来做到这一点,那就太好了,我无法弄清楚递归在这种方法中是如何工作的因此很难让代码正常工作。 任何帮助将不胜感激
【问题讨论】:
-
你的阵列有多大?
-
这里并没有什么特别针对 Objective-C...
-
我是否遗漏了什么,或者您应该只遍历到 distancenumber-1...您在最后一项上溢出了数组
-
@dreamlax iPhone 要求隐含了 Objective-C 的特殊性(当然也可以包括 C)
标签: objective-c sorting arrays