0%

Object-c冒泡排序


排序算法有好多中:选择排序、快速排序、希尔排序、堆排序等等,这里主要是简单的实现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;
}
}
}
}

坚持原创技术分享,您的支持将鼓励我继续创作!
Wihatow 微信

微信

Wihatow 支付宝

支付宝