03_插入排序

#include 
#include 
using namespace std;

//1 元素拿出来
//2 符合条件的元素后移动
template
void InsertionSort(vector &a)
{
	int i = 0;
	int j = 0;
	int k = -1;	
	for (i = 1; i < a.size(); i++)
	{
		Comp outElment = a[i];  //元素拿出来
		for(j = i-1; j >= 0 && a[j] > outElment; j--)
		{
			a[j+1] = a[j];		//元素后移动
			k = j;
		}

		a[k] = outElment;		//元素插入
	}
}

void main()
{
	vector a;
	a.push_back(8);
	a.push_back(3);
	a.push_back(6);
	a.push_back(1);

	cout << "排序前:";
	for(int i = 0; i < a.size(); i ++)
		cout << a[i] << " ";
	cout << endl;

	InsertionSort(a);
	cout << "排序后:";
	for(int i = 0; i < a.size(); i ++)
		cout <<  a[i] << " ";
	cout << endl;

	system("pause");
}

你可能感兴趣的:(插入排序,排序算法)