排序算法有好多中:选择排序、快速排序、希尔排序、堆排序等等,这里主要是简单的实现Object-c下的冒泡排序,这里添加了一个变量hasSwap,在大多数排序中可以减少部分判断次数,另外在交换的时候使用了点技巧,可以减少一个变量。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| //冒泡排序 void bubbleSort(int *nums,int length){ BOOL hasSwap = YES; for (int i=0; i<length && hasSwap; i++) { hasSwap = NO; for (int j=0; j<length-1-i; j++) { if (nums[j] > nums[j+1]) { nums[j] = nums[j] + nums[j+1]; nums[j+1] = nums[j] - nums[j+1]; nums[j] = nums[j] - nums[j+1]; hasSwap = YES; } } } }
|