一.冒泡排序原理
冒泡排序(Bubble Sort)应该是我们学习的第一个排序算法,因排序过程类似泡泡上浮或则下沉的形式所以叫冒泡排序。先看一个简单的实例整形数组排序:
int bubble_sort1(int* array, int nSize)
{
int nIndex1 = 0;
int nIndex2 = 0;
RET_VAL_IF_FAIL(array != NULL && nSize > 1, -1)
for(nIndex1 = 0; nIndex1 < nSize - 1; nIndex1++)
{
for(nIndex2 = 1; nIndex2 < nSize - nIndex1; nIndex2++)
{
if(array[nIndex2] < array[nIndex2 - 1])
{
int nTemp = array[nIndex2];
array[nIndex2] = array[nIndex2 - 1];
array[nIndex2 - 1] = nTemp;
}
}
}
return (0);
}
外层nIndex < nSize - 1,因为最后一次冒泡只有一个元素,故可以取消此次冒泡。关于函数里面的RET_VAL_IF_FAIL宏后面会提到。
二.冒泡排序改进