基本算法:排序 - 快速排序

快速排序 Quick Sort

1.快速排序(原始算法)

基本思想:分治,递归

算法流程:

算法缺陷:数组过大,递归过多导致栈溢出。

C/C++实现:

void quick_sort_primitive(int _array[], int first_index, int last_index)
	{
		if (first_index >= last_index) return;

		int first = first_index;
		int last = last_index;
		int key = _array[first];

		while (first < last)
		{
			while (first < last && _array[last] > key)
			{
				--last;
			}
			_array[first] = _array[last];

			while (first < last && _array[first] < key)
			{
				++first;
			}
			_array[last] = _array[first];
		}
		_array[first] = key;
		quick_sort_primitive(_array, first_index, first - 1);
		quick_sort_primitive(_array, first + 1, last_index);
	}

 

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