简单实现插入排序法

#include 
/*
插入排序就是将当前的数与前一个进行比较,如果比前一个大,就插入其后 
*/ 
using namespace  std;
void InsertionSort(int A[], int n)
{
	//从第一个数开始比较 
	for (int i = 1; i < n; i++)
	{
		//使用变量get保存当前的数,方便交换 
		int get = A[i];
		//j表示需要比较的前一个数字 
		int j = i - 1;
		//因为i是从1开始,所以判断一下是否大于零
		//然后判断一下前一个数是否比后面的大 ,如果是,则将这个数赋给后一个数(插入其后) 
		while (j >= 0 && A[j] > get)
		{
			A[j + 1] = A[j];
			j--;
		}
		//注意while里面的 j--
		//如果没有执行while的话,j+1就是i,和get一样
		//如果执行了while语句,j+1就是(i-1-1+1)=i-1,所以将之前存在get的A[i]赋值给A[i-1]
		//我在这里对插入其后还是理解为交换,这里的temp是get 
		A[j + 1] = get;
	}
}
int main()
{
	int A[] = { 6,5,3,1,8,7,2,4 };
	int n = sizeof(A) / sizeof(int);
	InsertionSort(A, n);
	cout << "排序结果:\n" << endl;
	for (int i = 0; i < n; i++)
	{
		cout << A[i]<<" ";
	}
	cout << "\nend";
	return 0;
}

 

你可能感兴趣的:(C++基础)