冒泡排序
思路分析:冒泡排序属于交换类排序,对n个元素的序列,需要将n-1个元素与相邻元素进行比较,并根据实际需求,交换相邻两个元素,使较大元素和较小元素分别向两个方向聚集。
时间复杂度:最坏情况(初始序列逆序)时间复杂度为O(n2),最好情况(初始序列顺序)时间复杂度为O(n),平均情况时间复杂度为O(n2)。
源代码:
void BubbleSort(int R[],int n)
{
int i,j,temp,flag;
for(i=n-1;i>=1;i--) //共需要进行n-1次冒泡过程
{
flag=0; //标识此次冒泡过程是否发生元素交换
for(j=1;j<=i;++j) //较小元素前移
{
if(R[j-1]>R[j])
{
temp=R[j];
R[j]=R[j-1];
R[j-1]=temp;
}
}
if(flag==0) //排序完成
{
return;
}
}