-1
對於下面的代碼,我一直試圖實現Quicksort以按字母順序排序矢量字符串。按字母順序排列的矢量C++
我發現的問題是,您無法將字符串比作「>」或「<」。我也嘗試使用字符串的.compare函數。
有什麼建議嗎?
`void quicksort(vector<string> arr, int left, int right)
{
int i = left, j = right;
string tmp;
string pivot = arr[(left + right)/2];
/* partition */
while (i <= j) {
while (arr[i] < pivot)
i++;
while (arr[j] > pivot)
j--;
if (i <= j) {
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
i++;
j--;
}
}
/* recursion */
if (left < j)
quickSort(arr, left, j);
if (i < right)
quickSort(arr, i, right);
}`
我也會以後可嘗試歸併,並InsertSort
'你不能比較的字符串爲「>」或「<」'是什麼阻止你? – 2015-02-10 15:01:46
請不要使用'C'標籤,除非問題(和/或預期答案)是C.這不是。 – 2015-02-10 15:01:50
'任何建議?'arr是按價值傳遞的。使用參考,而你可能會得到一些排序結果.. – drescherjm 2015-02-10 15:04:29