#include
#include
#include "./lib/DoubleVector.h"
using namespace std;
/**
* å¿«éæåº
*
* æ´ä¸ªæåºè¿ç¨åªéè¦ä¸æ¥ï¼
*ããï¼1ï¼å¨æ°æ®éä¹ä¸ï¼éæ©ä¸ä¸ªå
ç´ ä½ä¸º"åºå"ï¼pivotï¼ã
*ã ï¼2ï¼ææå°äº"åºå"çå
ç´ ï¼é½ç§»å°"åºå"çå·¦è¾¹ï¼ææå¤§äº"åºå"çå
ç´ ï¼é½ç§»å°"åºå"çå³è¾¹ã
*ããï¼3ï¼å¯¹"åºå"左边åå³è¾¹ç两个åéï¼ä¸æéå¤ç¬¬ä¸æ¥åç¬¬äºæ¥ï¼ç´å°ææåéåªå©ä¸ä¸ä¸ªå
ç´ ä¸ºæ¢
* åè龿¥: https://www.ruanyifeng.com/blog/2011/04/quicksort_in_javascript.html
*/
int main()
{
vector vList = cinDoubleVector();
vector quickSort(vector);
vector sortV = quickSort(vList);
coutDoubleVector(sortV);
return 0;
}
vector quickSort(vector vList)
{
if (vList.size() <= 1)
return vList;
double pivot = vList[0]; // å第ä¸ä¸ªå
ç´ ä½ä¸ºåè
vector leftV;
vector rightV;
for (int i = 1; i < vList.size(); i++)
{
cout << "for " << i << endl;
if (vList[i] < pivot)
// cout << "qs: " << leftV[leftV.size()] << endl;
// leftV[leftV.size()] = vList[i];
leftV.insert(leftV.end(), vList[i]);
else
rightV.insert(rightV.end(), vList[i]);
}
vector newV;
leftV = quickSort(leftV);
rightV = quickSort(rightV);
newV.insert(newV.begin(), leftV.begin(), leftV.end());
newV.insert(newV.end(), pivot);
newV.insert(newV.end(), rightV.begin(), rightV.end());
return newV;
}