代码:
#include <iostream> using namespace std; typedef struct ss { int i; int key; }iSort; void display(iSort arr[],int n) { for(int i=0;i<n;i++) { cout<<arr[i].key<<" "; } cout<<endl; } int main() { iSort arr[10]; int temp; int k,j; int m; for(int i=0;i<10;i++) { cin>>temp; arr[i].i=i; arr[i].key=temp; } cout<<"直接插入排序前:"<<endl; display(arr,10); cout<<endl; for(k=1;k<10;k++) { for(j=k-1;j>=0;j--) // 内部用交换排序 { if(arr[j].key>arr[j+1].key) { m=arr[j+1].key; arr[j+1].key=arr[j].key; arr[j].key=m; } } cout<<"第"<<k<<"趟排序"<<endl; for(int n=0;n<10;n++) { cout<<arr[n].key<<" "; } cout<<endl; } return 0; }
运行结果: