排序算法有好多中:选择排序、快速排序、希尔排序、堆排序等等,这里主要是简单的实现Object-c下的冒泡排序,这里添加了一个变量hasSwap,在大多数排序中可以减少部分判断次数,另外在交换的时候使用了点技巧,可以减少一个变量。
//冒泡排序
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;
}
}
}
}