简单问题,点解一下!

asfew 2003-10-15 11:48:39
能帮我解释一下这个程序里的Bsort函数是什么意思吗?我有点不太明白。希望能点解一下!
#include <iostream.h>

void Swap( int &a, int &b );
void Bsort(int a[], int n);

int main(int argc, char* argv[])
{
int array[] = { 42,12,13,65,89,78,62,46,36,47 };
int len = sizeof( array ) / sizeof( int );

for( int i = 0; i < len; i++ )
cout<<array[ i ]<<" ";
cout<<endl<<endl;

Bsort( array, len );

for( int j = 0; j < len; j++ )
cout<<array[ j ]<<" ";
cout<<endl;

return 0;
}

void Swap( int &a, int &b )
{
int temp;

temp = a;
a = b;
b = temp;
}

void Bsort(int a[], int n)
{
bool dontLoopAgain=false;

while( dontLoopAgain =! dontLoopAgain )
for(int i = 0, pass = --n; i < n; i++)
if( a[ i ] > a[ i + 1 ] )
{
dontLoopAgain = false;

Swap( a[ i] , a[ i + 1] );
}
}


...全文
25 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
langzi8818 2003-10-16
  • 打赏
  • 举报
回复
其实就是把 dontLoopAgain 取非赋值个 dontLoopAgain 做为while的循环条件。当没有任何一个前面的大于后面的时候, dontLoopAgain 是1,取非就是0,循环结束
langzi8818 2003-10-16
  • 打赏
  • 举报
回复
是一个升序排列啊
njuhuangmy 2003-10-16
  • 打赏
  • 举报
回复
应该是 bubble sort 的简称吧!

=! 是什么 东西 啊??

不是 "!=" ??
JetGeng 2003-10-16
  • 打赏
  • 举报
回复
这是冒泡排序的各改进版,他的改进依据是在单独一趟中如果没有发身交换这就说明整个排序已经完成。这样就可以推出循环了。具体的实现就如 langzi8818兄说的一样了。

69,336

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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