(一)C++插入排序

一 插入排序

1.概念

    插入排序对于少量元素排序,是一种有效的算法。就像打纸牌一样,把每次摸到的纸牌放入恰当的位置,排好顺序。

2.算法思想

    

INSERTION_SORT(A)
1 for i=1 to A.len
2		temp=A[i]
3		j=i-1
4		while j>=0 and A[j]>temp
5			A[j + 1] = A[j]
6			A[j] = temp
7			j--

3.源码

#include <iostream>
using namespace std;

//打印数组
int SortPrint(int *arr, int num)
{
	int i = 0;
	for (i = 0; i < num; i++)
	{
		cout << arr[i] << " ";
	}
	cout << endl;
	return 0;
}

//插入排序
void IsertionSort(int *arr, int num)
{
	int temp = 0, i = 0, j = 0;
	for (i = 1; i < num; i++)
	{
		temp = arr[i];//取出第二个元素当标志
		j = i - 1;
		while(j>=0 && arr[j] > temp)
		{
			arr[j + 1] = arr[j];
			arr[j] = temp;	
			j--;
		}
	}

	return ;
}

int main()
{
	int i = 0, len;
	int array[6] = { 5, 2, 4, 6, 1, 3 };

	//数组长度
	len = sizeof(array) / sizeof(array[0]);

	cout << "The array's sort:" << endl;
	SortPrint(array, len);

	//插入排序
	IsertionSort(array, len);
	cout << "The isertionsort array's sort:" << endl;
	SortPrint(array, len);

	system("pause");
	return 0;
}

输出结果:

The array's sort:
5 2 4 6 1 3
The isertionsort array's sort:
1 2 3 4 5 6


猜你喜欢

转载自blog.csdn.net/ailunlee/article/details/79887864