代码改变世界

常用算法之冒泡排序

2010-04-12 20:56  Phoenix'K  阅读(294)  评论(0编辑  收藏  举报

    其实我认为冒泡是最没有必要说的一个算法,如果连冒泡都不知道的话,我觉得就不能谓之学过算法。这个应该是属于特别简单的一个算法,很基本,我记得当时我们是讲算法的时候,讲的第一个就是这个冒泡排序。我也就不多说其他了,我这里写上纯粹是为了一个完整性。

   效率O(n*n),稳定排序。

 

1 #include<iostream>
2  using namespace std;
3
4  int BubbleSort(int *nData,int len)
5 {
6 bool isOk = false;
7 for(int i = 0;i<len-1&&!isOk;++i){
8 isOk = true;
9 for(int j = len - 1;j > i;--j){
10 if(nData[j]<nData[j-1]){
11 int temp = nData[j];
12 nData[j] = nData[j-1];
13 nData[j-1] = temp;
14 isOk = false;
15 }
16 }
17 }
18 }
19
20 int main()
21 {
22 int pData[10]={1,5,9,3,4,7,8,2,6,10};
23 for(int i = 0;i<10;++i)
24 cout<<pData[i]<<' ';
25 BubbleSort(pData,10);
26 for(int i = 0;i<10;++i)
27 cout<<pData[i]<<' ';
28 return 0;
29 }