标签:oid str quick i++ tac stream ++ include mes
递归的核心是栈;可构造辅助栈实现非递归。
#include<iostream> #include <stdio.h> #include <stack> using namespace std; int partion(int* root, int low, int high) { int part = root[low]; while(low < high) { while(low<high && root[high]>part){ high--; } root[low] = root[high]; while(low<high && root[low]<=part) { low++; } root[high] = root[low]; } root[low] = part; return low; } void quickSort2(int* root, int low, int high) { stack<int> st; int k; if(low < high) { st.push(low); st.push(high); while(!st.empty()) { int j = st.top(); st.pop(); int i = st.top(); st.pop(); k = partion(root, i, j); if(i < k - 1) { st.push(i); st.push(k - 1); } if(k + 1 < j) { st.push(k + 1); st.push(j); } } } } int main() { int a[8] = {4, 2, 6, 7, 9, 5, 1, 3}; //quickSort1(a,0,7); quickSort2(a, 0, 7); for(int i = 0; i < 8; i++) { cout << a[i] << endl; } return 0; }
标签:oid str quick i++ tac stream ++ include mes
原文地址:https://www.cnblogs.com/pengwang52/p/11724098.html