冒泡法排序C++實現


看一下代碼:

#include <iostream>
using namespace std;
//function count the number of count variable
void printf(int* a, int count)
{
for (int i = 0; i< count; i++)
{
cout << a[i] <<" ";
}
cout << endl;
}

void BubbleSort(int *a, int count)
{
int i,j,k,temp;
for(i=0;i<count-1;i++)
{
k=i;
for(j=i+1; j<count; j++)
{
if(*(a+j) < *(a+k))k=j;
temp=*(a+k);
*(a+k)=*(a+i);
*(a+i)=temp;
}
cout<<"The"<<i<<"round:"<<endl;
printf(a,count);
}
}

int main()
{
int data[]={6, 5, 4, 3, 2, 1};//initialize data[]
BubbleSort(data, 6);
cout<<"The sort result:"<<endl;
printf(data, 6);
return 0;
}

最后運行結果:


網上找到網友的另外一種冒泡法排序,代碼如下:

void BubbleSort(int* pData, int count)
{
int temp;
for (int i = 1; i < count; i++)
{
for (int j = count - 1; j >= i; j--)
{
if (pData[j] < pData[j - 1])
{
temp = pData[j - 1];
pData[j - 1] = pData[j];
pData[j] = temp;
}
}
cout << "The "<< i <<" round:" << endl;
print(pData, count);
cout << "----------------------------" << endl;
}
}
其采用倒序查詢的方式排序,最后結果相同相同。


冒泡法冒泡排序

優點:比較簡單,空間復雜度較低,是穩定的;

缺點:時間復雜度太高,效率不好。


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
  © 2014-2022 ITdaan.com 联系我们: