#include <stdio.h>
#define MAXL 100
typedef int KeyType;
typedef char InfoType;
typedef struct
{ KeyType key;
InfoType data;
} RecType;
void swap(RecType &x,RecType &y)
{
RecType tmp=x;
x=y; y=tmp;
}
void CreateList(RecType R[],KeyType keys[],int n)
{
for (int i=0;i<n;i++)
R[i].key=keys[i];
}
void DispList(RecType R[],int n)
{
for (int i=0;i<n;i++)
printf("%d ",R[i].key);
printf("\n");
}
void CreateList1(RecType R[],KeyType keys[],int n)
{
for (int i=1;i<=n;i++)
R[i].key=keys[i-1];
}
void DispList1(RecType R[],int n)
{
for (int i=1;i<=n;i++)
printf("%d ",R[i].key);
printf("\n");
}
void BubbleSort(RecType R[],int n)
{ int i,j;
bool exchange;
for (i=0;i<n-1;i++)
{ exchange=false;
for (j=n-1;j>i;j--)
if (R[j].key<R[j-1].key)
{ swap(R[j],R[j-1]);
exchange=true;
}
printf(" i=%d: 归位元素%d,排序结果:",i,R[i].key);
DispList(R,n);
if (!exchange)
return;
}
}
int main()
{
int n=10;
RecType R[MAXL];
KeyType a[]={6,8,7,9,0,1,3,2,4,5};
CreateList(R,a,n);
printf("排序前:"); DispList(R,n);
BubbleSort(R,n);
printf("排序后:"); DispList(R,n);
return 1;
}
实现冒泡排序算法
最新推荐文章于 2024-09-15 09:47:04 发布