您的位置:首页 > 其它

冒泡排序

2015-08-22 14:37 176 查看
假设待排序表长为n,从后向前(或从前往后)两两比较相邻元素的值,若为逆序,则交换他们,直到序列比较完,这是一趟冒泡排序,结果是将最小的元素交换到待排序列的第一个位置。下一趟排序的时候,前一趟确定的最小元素不在参与比较,待排序列减少一个元素,每趟冒泡排序的结果是把序列中的最小元素放到了序列的最终位置,……,这样最多做n-1趟冒泡就能把所有的元素排好序。
void BubbleSort(ElemType A[], int n)

{

//用冒泡排序将序列A中的元素按从小到大进行排列

for(i=0; i<n-1; i++)

{

flag=false;

for(j=n-1; j>i; j--)

	{

if(A[j-1].key>A[j].key)

{

swap(A[j-1], A[j]);

flag=true;

}

}

if(flag==false)

return ;

}

}

[/code]时间复杂度:o(n^2)稳定排序

来自为知笔记(Wiz)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: