社区
C语言
帖子详情
求改进了的"冒泡排序法".
conchen
2003-10-15 01:44:41
谁能发一下.
...全文
58
7
打赏
收藏
求改进了的"冒泡排序法".
谁能发一下.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
挺拔的劲松
2003-10-15
打赏
举报
回复
http://paddy.myrice.com/program/43.htm
这里有详细的解绍。你可以看一下。
conchen
2003-10-15
打赏
举报
回复
thanks !
shanweibing
2003-10-15
打赏
举报
回复
同意: Hot_Forever(用钱砸死我吧)
我也只知道这两种改进方法。
daizh
2003-10-15
打赏
举报
回复
更正我上面的程序:
#include<iostream.h>
#define max 20 //最多记录个数
typedef int elemtype;
typedef elemtype recs[max];
void bibubble(recs r,int n)
{
int flag=1; //继续遍历时flag置1,已排好序不需遍历时为0
int i=0, j;
elemtype temp;
while(flag==1)
{
flag=0;
for(j=i+1;j<n-1;j++) //正向遍历找最大值
if(r[j]>r[j+1])
{
flag=1; //能交换时,说明未排好序,需继续
temp=r[j];
r[j]=r[j+1];
r[j+1]=temp;
}
for(j=n-i-1;j>=i+1;j--) //反向遍历
if(r[j]>r[j-1])
{
flag=1; //能交换时,说明未排好序,需继续
temp=r[j];
r[j]=r[j-1];
r[j-1]=temp;
}
i++;
}
}
void main()
{
recs A={2,5,3,4,6,10,9,8,7,1};
int n=10, i;
cout<<"双向冒泡排序"<<endl<<"排序前:";
for(i=0;i<n;i++)
cout<<A[i]<<"";
cout<<endl;
cout<<" 排序后: ";
bibubble(A,n);
for(i=0;i<n;i++)
cout<<A[i]<<"";
cout<<endl;
}
Hot_Forever
2003-10-15
打赏
举报
回复
[改进一]:若某次循环中没有数据交换
过,则可认为数据已经有序了,不必再进行
循环了。可在程序中设一变量Flag 用来标识
有无数据交换。sort(a,n)
int a[],n ;
{int i ,j ,t ,flag ;
for (i =n -2;i >0;i --)
{flag =0;
for(j =0;j <i ;j ++)
if(a[j]<a[j +1]){t =a[j];a[j]=a[j +1];
a[j +1]=t ;flag =1;}
if (flag ==0)break;
}}
[改进二]:如果在一次循环中,最后
的某些元素没有交换过,则说明后面这些元
素的顺序已排序,下次循环可不对其进行比
较。本方法主要考虑要排序的数组元素的范
围,而不是每一轮排序都将数组元素的范围
减少1。
sort(a,n)
int a[],n ;
{int i ,j ,t ,k,flag ;
flag =n -1;
while (flag >0)
{k=0;
for(j =0;j <i ;j ++)
if(a[j]<a[j +1]){t =a[j];a[j]=a[j +1];
a[j +1]=t ;k=j ;}
flag =k;/*此处不填flag =
flag -1;
}}
River_H
2003-10-15
打赏
举报
回复
书上到处都是。
daizh
2003-10-15
打赏
举报
回复
双向冒泡排序
void Bubble2Sort(int* pData,int Count)
{
int iTemp;
int left = 1;
int right =Count -1;
int t;
do
{
//正向的部分
for(int i=right;i>=left;i--)
{
if(pData[i] {
iTemp = pData[i];
pData[i] = pData[i-1];
pData[i-1] = iTemp;
t = i;
}
}
left = t+1;
//反向的部分
for(i=left;i {
if(pData[i] {
iTemp = pData[i];
pData[i] = pData[i-1];
pData[i-1] = iTemp;
t = i;
}
}
right = t-1;
}while(left<=right);
}
改进
冒泡排序法
.asm
改进
冒泡排序法
.asm
冒泡排序法
改进
前后的比较_
冒泡排序法
改进
前后的比较_
冒泡排序法
改进
前后的比较,比较了其优点及缺点
冒泡排序算法.zip
冒泡排序是最基本的稳定排序算法、本资源最基础的是Bubber_Sort_One,单边
改进
算法Bubber_Sort_One_Flag,基于
改进
算法的双向
冒泡排序法
Bubber_Sort_Double。
冒泡排序法
+输入输出数组
上次的
改进
,审核
求
过.
这是一个冒泡排序算法的C语言
改进
算法源码,
改进
法采用双向移动法.zip
这是一个冒泡排序算法的C语言
改进
算法源码,
改进
法采用双向移动法.zip
C语言
69,336
社区成员
243,078
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章