双向起泡排序双向起泡排序
双向起泡排序:
#include
#include
#include
//顺序表结构类型定义
typedef int datatype; typedef struct{
int key;
datatype data;
}sequenlist;
void create(sequenlist[],int);
void print(sequenlist[],int);
void dbubblesort(sequenlist[],int);
void main()
{
const int n...
双向起泡排序
双向起泡排序:
#include
#include
#include
//顺序结构类型定义
typedef int datatype; typedef struct{
int key;
datatype data;
}sequenlist;
void create(sequenlist[],int);
void print(sequenlist[],int);
void dbubblesort(sequenlist[],int);
void main()
{
const int n=10;
sequenlist r[n+1];
create(r,n);
printf("排序前的数据:");
print(r,n);
dbubblesort(r,n);
printf("排序后的数据:");
print(r,n);
}
//建立顺序表
void create(sequenlist r[],int n)
{
srand(time(0));
for(int i=1;i<=n;i++)
r[i].key=rand()%90; }
//输出顺序表
void print(sequenlist r[],int n)
{
for(int i=1;i<=n;i++)
printf("%5d",r[i].key);
printf("\n");
}
//添加双向起泡排序算法
void dbubblesort(sequenlist r[],int n){
int i,tms=0;
int low=1,high=n;
int bestj;
int temp1,temp2;
while (low=high)
break;
bestj=-1;
for (i=low;i<=high;i++)
if (bestj==-1 || r[i].key>r[bestj].key)
bestj=i;
//交换r[bestj].key和r[high].key
temp2=r[bestj].key;
r[bestj].key=r[high].key;
r[high].key=temp2;
high--;
printf("times: %d",++tms); print(r,n);
}
}
本文档为【双向起泡排序】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。