快速排序 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);
}