Welcome

首页 / 软件开发 / 数据结构与算法 / 常见排序算法的实现(四)-冒泡排序

常见排序算法的实现(四)-冒泡排序2010-06-09 C++博客 那谁冒泡排序的思想:很简单,每次遍历完序列都把最大(小)的元素放在最前面,然后再对剩下的序列从父前面的一个过程,每次遍历完之后待排序序列就少一个元素,当待排序序列减小为只有一个元素的时候排序就结束了.因此,复杂度在最坏的情况下是O(N ^ 2).

void Swap( int * a,int * b)
{
int temp;

temp=* a;
* a =* b;
* b=temp;
}

// 冒泡排序
void BubbleSort( int array[],int length)
{
// 记录一次遍历中是否有元素的交换
bool exchange;
for ( int i =0 ; i<length;++ i)
{
exchange =false ;
for ( int j = i + 1 ; j <length; ++ j)
{
if (array[j] < array[i])
{
exchange =true ;
Swap( & array[j],& array[i]);
}
}
// 如果这次遍历没有元素的交换,那么排序结束
if ( false == exchange)
break ;
}
}