您的位置:首页 > 其它

简单插入排序

2014-07-21 17:00 120 查看
插入排序:
插入排序一般序列分为两部分,一部分已经排好序,另外是原始序列。从原始序列中取出第一个元素,插入到已经排好序的序列中。
下面是实现代码
#include<iostream>
using namespace std;
void swap(int &a, int &b)
{
	int temp = a;
	a = b;
	b = temp;
}
void insert_sort(int arr[], int len)  //插入排序
{
	if (arr == NULL || len < 0)
		return;
	int i = 0, k = 0;
	for (i = 1; i < len; i++)
	{
		k = i;
		for (int j = i - 1; j >= 0 && k>=0; j--)
		{
			if (arr[k] >= arr[j]) //如果当前值比有序序列中的最大值大,则不移动元素,否则进行交换
			{
				break;
			}
			else
			{
				swap(arr[k], arr[j]);
				k--;

			}

		}
	}
}
int main()
{
	int arr[] = { 5, 4, 1, 7, 9, 8 };
	int num = 0;
	while (num++ != 10)
	{

		for (size_t i = 0; i < 6; i++)
		{
			arr[i] = rand() % 20;

		}
		insert_sort(arr, 6);
		for (size_t i = 0; i < 6; i++)
		{
			cout << arr[i] << "  ";
		}
		cout << endl;

	}
	return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: