Bubble Sort(冒泡法)

王朝c/c++·作者佚名  2006-01-06
窄屏简体版  字體: |||超大  

最简单的排序方法是冒泡排序方法。这种方法的基本思想是,将待排序的元素看作是竖着排列的“气泡”,较小的元素比较轻,从而要往上浮。在冒泡排序算法中我们要对这个“气泡”序列处理若干遍。所谓一遍处理,就是自底向上检查一遍这个序列,并时刻注意两个相邻的元素的顺序是否正确。如果发现两个相邻元素的顺序不对,即“轻”的元素在下面,就交换它们的位置。显然,处理一遍之后,“最轻”的元素就浮到了最高位置;处理二遍之后,“次轻”的元素就浮到了次高位置。在作第二遍处理时,由于最高位置上的元素已是“最轻”元素,所以不必检查。一般地,第i遍处理时,不必检查第i高位置以上的元素,因为经过前面i-1遍的处理,它们已正确地排好序。这个算法可实现如下。

Bubble Sort程序:

STL C++程序:(VC++6.0通过)

#include "stdafx.h"

#include "iostream.h"

template<class T>

class doit{

private:

int x,y;

T temp;

public:

doit(T* in,int count)

{

for(y=0;y<count-1;y++)

{

for(x=1;x<count-y;x++)

{

if((*(in+x))>(*(in+x-1)))

{

temp=(*(in+x-1));

(*(in+x-1))=(*(in+x));

(*(in+x))=temp;

}

}

}

}

};

int main()

{

double a[4]={1.1,1.3,1.9,2.2};

doit<double> d(a,4);

for(int i=0;i<4;i++)

{

cout<<a[i]<<endl;

}

return 0;

}

C语言程序:(TC 2.0通过)

void doit(float* in,int count)

{

int x;

int y;

float temp;

for(y=0;y<count-1;y++)

{

for(x=1;x<count-y;x++)

{

if((*(in+x))>(*(in+x-1)))

{

temp=(*(in+x-1));

(*(in+x-1))=(*(in+x));

(*(in+x))=temp;

}

}

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航