急求一个冒泡排序法的简单实例!

wudao1 2010-07-08 10:15:47
各位大哥大姐,俺是一个初学者,告诉俺一个冒泡排序的法的简单示例呗!谢了!
...全文
306 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
饭fan有引力 2010-07-09
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 hanmeisong 的回复:]
鄙视楼上,瞧这个C版的

C/C++ code

#include <stdio.h>
void main(void)
{
int a[10]={9,8,7,6,5,4,3,2,1,0};
int i,j;int n;
for(i=0;i<10;i++)
for(j=i;j<9;j++)
{
if(a[j]>a[j+1])
……
[/Quote]

我也鄙视你。。。(有样学样)
djjlove_2008 2010-07-09
  • 打赏
  • 举报
回复
鉴于你的初学者,这个程序可以开导你怎样才能写出好程序:

#include <iostream>
using namespace std;

void bubble_sort_1(int a[], int len)
{
int i, j, temp;
for(i = 0; i < len - 1; i++)
{
for(j = 0; j < len - i; j--)
{
if(a[j + 1] < a[j])
{
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;

}
}
}
}

void bubble_sort_2(int a[], int len)
{
int i, j, temp,exchange;
for(i = 0; i < len - 1; i++)
{
exchange = 0;
for(j = len - 1; j >= i; j--)
{
if(a[j + 1] < a[j])
{
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
exchange = 1;
}
}
if(exchange != 1)
return;
}
}

void print_array(int a[], int len)
{
for(int i = 0; i < len; i++)
cout<<a[i]<<" ";
cout<<endl;
}

int main()
{
int a[] = {7, 3, 5, 8, 9, 1, 2, 4, 6};
cout<<"before sorted:"<<endl;
print_array(a, 9);
//bubble_sort_1(a, 9);
bubble_sort_2(a, 9);
cout<<"after sorted:"<<endl;
print_array(a, 9);

system("pause");
return 0;
}


第一个冒泡排序,是没有优化的,第二个设置了一个标志变量,可以在程序没有交换的情形下,跳出来,效率高很多。
Q446512799 2010-07-09
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 hanmeisong 的回复:]
鄙视楼上,瞧这个C版的

C/C++ code

#include <stdio.h>
void main(void)
{
int a[10]={9,8,7,6,5,4,3,2,1,0};
int i,j;int n;
for(i=0;i<10;i++)
for(j=i;j<9;j++)
{
if(a[j]>a[j+1])
……
[/Quote]
不是for(i=0;i<10;i++)
for(j=0;j<10-i-1;j++)
吗。。。
  • 打赏
  • 举报
回复
这种帖子居然没人封杀。
na2650945 2010-07-09
  • 打赏
  • 举报
回复
冒泡。
zjq2009zjq 2010-07-08
  • 打赏
  • 举报
回复
呵呵,初学c++,这是我第一个接触的代码,谢谢额![Quote=引用 2 楼 dinghing 的回复:]
http://writeblog.csdn.net/PostList.aspx

#include <iostream.h>
void BubbleSort(int* pData,int Count)
{
int iTemp;
for(int i=1;i<Count;i++)
{
for(int j=Count-1;j>=i;j--)
{
……
[/Quote]
hurryboylqs 2010-07-08
  • 打赏
  • 举报
回复

template<typename T>
void bubblesort(T *p,int nlen)
{
bool change=true;
for(int i=nlen-1;i>0&&change;i--)
{
change=false;
for(int j=0;j<i;j++)
{
if(p[j]>p[j+1])
{
int n = p[j];
p[j] = p[j+1];
p[j+1]=n;
change=true;
}
}
}
}
xingshuqiang2009 2010-07-08
  • 打赏
  • 举报
回复
路过的!
yongta 2010-07-08
  • 打赏
  • 举报
回复
楼上真牛 ,,会写C版lj程序.
goodluckme2013 2010-07-08
  • 打赏
  • 举报
回复
鄙视楼上,瞧这个C版的

#include <stdio.h>
void main(void)
{
int a[10]={9,8,7,6,5,4,3,2,1,0};
int i,j;int n;
for(i=0;i<10;i++)
for(j=i;j<9;j++)
{
if(a[j]>a[j+1])
{
n=a[j];
a[j]=a[j+1];
a[j+1]=n;
}
}
for(i=0;i<10;i++)
printf("%d ",a[i]);
}
chaoliu1024 2010-07-08
  • 打赏
  • 举报
回复
#include <iostream>
#define LEN 9
using namespace std;

int main()
{
int nArray[LEN];
int i;

for(i=0;i<LEN;i++)
nArray[i]=LEN-i;
cout<<"原始数据为:"<<endl;
for(i=0;i<LEN;i++)
cout<<nArray[i]<<" ";
cout<<endl;
//开始冒泡
{
int temp;
for(int i=LEN-1;i>0;i--)
for(int j=0;j<=i;j++)
{
if(nArray[j]>nArray[j+1])
{
temp=nArray[j];
nArray[j]=nArray[j+1];
nArray[j+1]=temp;
}
}
}
//结束冒泡
cout<<"排序结果:"<<endl;
for(i=0;i<LEN;i++)
cout<<nArray[i]<<" ";
return 0;
}
dinghing 2010-07-08
  • 打赏
  • 举报
回复
http://writeblog.csdn.net/PostList.aspx

#include <iostream.h>
void BubbleSort(int* pData,int Count)
{
int iTemp;
for(int i=1;i<Count;i++)
{
for(int j=Count-1;j>=i;j--)
{
if(pData[j]<pData[j-1])
{
iTemp = pData[j-1];
pData[j-1] = pData[j];
pData[j] = iTemp;
}
}
}
}

void main()
{
int data[] = {10,9,8,7,6,5,4};
BubbleSort(data,7);
for (int i=0;i<7;i++)
cout<<data[i]<<" ";
cout<<"\n";
}

65,208

社区成员

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

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