直接插入排序

代码:

#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;
}

 运行结果:

posted @ 2013-05-27 13:22  xshang  阅读(147)  评论(0编辑  收藏  举报