🥰作者: FlashRider
🌏专栏: 初阶数据结构
🍖知识概要:探讨八大排序的时空复杂度与稳定性,讲解快排和归并的非递归实现。
目录
快速排序-非递归
快速排序的递归过程实际上可以看作二叉树,我们利用先序遍历或者层序遍历(栈或队列)来实现非递归即可。
这里直接用栈实现,对于一趟快排结束后,我们要排他的左右区间,所以我们把区间入栈就行了,但要注意入栈出栈的顺序,不要把区间的端点弄反了。
void QuickSortNonR(int* a, int begin, int end)//栈实现
{
Stack st;
StackInit(&st);
StackPush(&st, end);
StackPush(&st, begin)