#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; } |
c++实现冒泡排序
最新推荐文章于 2024-08-18 21:07:18 发布