社区
C语言
帖子详情
求改进了的"冒泡排序法".
conchen
2003-10-15 01:44:41
谁能发一下.
...全文
61
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
冒泡排序法
改进
前后的比较_
冒泡排序法
改进
前后的比较_
冒泡排序法
改进
前后的比较,比较了其优点及缺点
跟汤老师学Java(第7季):数组
本课程从零开始,以通俗易懂的方式讲解Java入门,真正做到零基础入门学习,最适合初学者的教程!课程内容包括:1.数组简介2.数组基本用法3.动态赋值4.增强for循环5.练习:数组的用法6.栈和堆7.基本数据类型和引用数据类型及在内存中的存储方式8.值传递和引用传递9.二维数组10.练习:二维数组11.冒泡排序12.Arrays工具类13.不定长参数
冒泡排序算法.zip
冒泡排序是最基本的稳定排序算法、本资源最基础的是Bubber_Sort_One,单边
改进
算法Bubber_Sort_One_Flag,基于
改进
算法的双向
冒泡排序法
Bubber_Sort_Double。
冒泡排序法
+输入输出数组
上次的
改进
,审核
求
过.
C语言
69,371
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章