我想在下面顯示的代碼中使用Objective-C對15個隨機數進行排序。代碼沒有按計劃運行。我從插入排序C代碼中瞭解了這個概念。 15個隨機數正在生成,但排序不起作用。Objective-C中的插入排序算法在iphone中實現
C代碼:
int i, j, index;
for (i = 1; i < array_size; ++i)
{
index = a[i];
for (j = i; j > 0 && a[j-1] > index; j--)
a[j] = a[j-1];
a[j] = index;
}
Objective-C代碼:
-(IBAction)clicked_insertsort:(id)sender
{
NSMutableArray *array = [NSMutableArray array];
for (int x = 0; x < 15; x++)
{
[array addObject: [NSNumber numberWithInt: arc4random()%200]];
}
NSLog(@"%@",array);
{
int i, j;
id index;
for (i = 1; i < 15; ++i)
{
index = [array objectAtIndex:(NSUInteger)i]; // a[i];
for (j = i; j > 0 && [array objectAtIndex:(NSUInteger)j-1] > index; j--)
[array replaceObjectAtIndex: (j) withObject: [array objectAtIndex: (j-1)]];
[array objectAtIndex:(NSUInteger)j] == index ;
}
}
NSLog(@"%@",array);
}
有沒有特別的原因讓你自己編寫排序,而不是在'NSArray'上使用'sortedArrayUsing ...'方法之一?除非這是一項嚴格的要求,例如作業分配,否則很少有理由實施自己的分類。 – DPlusV 2012-07-17 10:10:19
謝謝,是的,我需要使用上面的代碼進行排序,而不是內部功能,看看需要多少時間才能執行某些算法 – 2012-07-17 10:13:31
不成熟的優化或研究的樂趣/教育?無論如何,只有15個數字你不會得到任何可靠的數據(或性能問題)。 – 2012-07-17 11:36:02