Object-c冒泡排序

来源:互联网 发布:算法谜题中文pdf 编辑:程序博客网 时间:2024/05/17 22:41

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

0 0