//冒泡排序算法实现
#include<stdio.h>
#include<malloc.h>
#define MAXE 20
typedef int KeyType;
typedef char InfoType;
typedef struct
{
KeyType key;
InfoType data[10];
}RecType;
void BubbleSort(RecType r[],int n)//按递增有序进行直接插入排序
{
int i,j,k;
RecType temp;
for(i=0;i<n-1;i++)
{
for(j=n-1;j>i;j--)
{
if(r[j].key<r[j-1].key)
{
temp=r[j];
r[j]=r[j-1];
r[j-1]=temp;
}
}
printf(" i=%d: ",i);//输出每一趟的排序结果
for(k=0;k<n;k++)
printf("%4d",r[k].key);
printf("\n");
}
}
int main()
{
int i,k,n;
//KeyType a[]={9,8,7,6,5,4,3,2,1,0};
KeyType a[]={88,78,68,58,48,38,27,16,15,14,13,12,11,10};
n=sizeof(a)/4;
RecType r[MAXE];
for(i=0;i<n;i++)
r[i].key=a[i];
printf("\n");
printf("初始关键词: ");
for(k=0;k<n;k++)
printf("%4d",r[k].key);
printf("\n");
BubbleSort(r,n);
printf(" 最后结果: ");
for(k=0;k<n;k++)
printf("%4d",r[k].key);
printf("\n\n");
return 0;
}
数据结构源码笔记(C语言描述)汇总: