#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 InsertSort(RecType R[],int n) { int i, j; RecType tmp; for (i=1;i<n;i++) { printf(" i=%d,插入%d,插入结果: ",i,R[i].key); if (R[i].key<R[i-1].key) { tmp=R[i]; j=i-1; do { R[j+1]=R[j]; j--; } while (j>=0 && R[j].key>tmp.key); R[j+1]=tmp; } DispList(R,n); } } |
int main() { int n=10; KeyType a[]={9,8,7,6,5,4,3,2,1,0}; RecType R[MAXL]; CreateList(R,a,n); printf("排序前: "); DispList(R,n); InsertSort(R,n); printf("排序后: "); DispList(R,n); return 1; } |
c++实现直接插入排序
最新推荐文章于 2024-09-21 21:23:20 发布