1 QuickSort(快速排序)
流行的排序算法,速度最快的排序算法。主要原理为在数据头部或尾部选择一个枢轴,将其他数据中比枢轴小的放在前面,反之放在后面,利用递归算法,进行排序。
递归算法讲解可以参考我的上一篇文章。点击这里
template<class T>
void QuickSort1(T* list, const int left, const int right)
{
if (left < right)
{
int i = left, j = right;
int pivot = list[left];
do
{
do i++; while (list[i] < pivot);
do j--; while (list[j] > pivot);
if (i < j) swap(list[i], list[j]);
} while (i < j);
swap(list[left], list[j]);
QuickSort(list, left, j - 1);
QuickSort(list, j + 1, right);
}
}
2 MergeSort(归并排序)
将数据分为小块,分别排序后进行归并,最终使整个数据排序。
代码后续将会补充。