直接插入排序

yuananf 分享于 昨天 1517阅 0人收藏此代码, 我要收藏

IT笔试常见,喜闻乐见

#include <iostream>

using namespace std;

void printArray(int* arr, int len);
void insertSort(int *arr, int len);

int main()
{
        int arr[] = {1, 4, 3, 10, 4, 7, 2, 5};
	int len = sizeof(arr)/sizeof(*arr);

	printArray(arr, len);
	insertSort(arr, len);
	printArray(arr, len);

	cin.get();
        return 0;
}

void insertSort(int *arr, int len)
{
	int j;

	for(int i = 0; i < len - 1; i++)
	{
		j = i + 1;
		int tmp = arr[j];
		while(j > 0 && tmp < arr[j - 1])
		{
			arr[j] = arr[j - 1];
			j--;
		}
		arr[j] = tmp;
	}
}

void printArray(int* arr, int len)
{
	for(int i = 0; i < len; i++)
	{
		cout << arr[i] << " ";
	}
	cout << endl;
}
//该代码片段来自于: http://www.sharejs.com/codes/cpp/8811