基本アルゴリズムきほんアルゴリズム:ソート→クイックソート

766 ワード

クイックソート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);
	}