冒泡排序
思路分析:冒泡排序屬於交換類排序,對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;
}
}