请教如何用C++描述冒泡排序的算法?

xiuling 2004-07-11 07:02:59
请教如何用C++描述冒泡排序的算法?有急用谢谢~!
...全文
163 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Wolf0403 2004-07-12
  • 打赏
  • 举报
回复
和用 C 几乎没什么区别……
_Bool -> bool
最多加个模板……
soyan 2004-07-12
  • 打赏
  • 举报
回复
void BubbleSort(SeqList R)
{ //R(l..n)是待排序的文件,采用自下向上扫描,对R做冒泡排序
int i,j;
Boolean exchange; //交换标志
for(i=1;i<n;i++){ //最多做n-1趟排序
exchange=FALSE; //本趟排序开始前,交换标志应为假
for(j=n-1;j>=i;j--) //对当前无序区R[i..n]自下向上扫描
if(R[j+1].key<R[j].key){//交换记录
R[0]=R[j+1]; //R[0]不是哨兵,仅做暂存单元
R[j+1]=R[j];
R[j]=R[0];
exchange=TRUE; //发生了交换,故将交换标志置为真
}
if(!exchange) //本趟排序未发生交换,提前终止算法
return;
} //endfor(外循环)
} //BubbleSort
积木 2004-07-12
  • 打赏
  • 举报
回复
void SortStrArray(ArrayString str, int iSize)
{
assert(str!=NULL);
assert(iSize!=0);

char* temp=NULL;
int iChange=1;

for (int i=0; i<iSize&&iChange>0; i++)
{
iChange=0;
for (int j=1;j<iSize-i;j++)
{
if (strcmp(str[j-1], str[j])<0)
{
temp=str[j-1];
str[j-1]=str[j];
str[j]=temp;
++iChange;
}
}
}

}
一个小小的冒泡啦,呵呵
doudou52520 2004-07-12
  • 打赏
  • 举报
回复
up
Cassati 2004-07-12
  • 打赏
  • 举报
回复
#include <iostream.h>

void bubble(int[],int);

void main()
{
int array[]={55,2,6,4,32,12,9,73,26,37};
int len=sizeof(array)/sizeof(int); //元素个数
for(int i=0; i<len; i++) //原始顺序输出
cout <<array[i] <<",";

cout <<endl<<endl;
bubble(array, len); //调用排序函数
}

void bubble(int a[],int size) //冒泡排序
{
int i,temp;

for(int pass=1; pass<size; pass++){ //共比较size-1轮
for(i=0; i<size-pass; i++) //比较一轮
if(a[i]>a[i+1]){
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}

for(i=0; i<size; i++) //比较一轮后就输出
cout <<a[i] <<",";
cout <<endl;
}
}

64,661

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧