以下是我如何生成要排序的数字。
vector<int> list;
for (i=0;i<50;i++) list.push_back(rand() %1000);
这是我在主要
中的电话quickSort(list , 0, (list.size() -1 ));
这是快速排序功能
int pivot = left;
int temp = right;
if(left > right - 1)
return;
while (left != right) {
if (pivot == left){
if (list[pivot] > list[right]) {
//-------------------------
std:swap(list, right, pivot);
//-------------------------
pivot = right;
left++;
}else{
right--;
}
}else{
if (list[pivot] < list[left]) {
//-------------------------
swap(list, left, pivot);
//-------------------------
pivot = left;
right--;
}else{
left++;
}
}
}
quickSort(list, 0, right -1);
quickSort(list, right + 1, temp);
随着我排序的元素数量接近大约50,排序所需的时间会呈指数级变大。我没有想法。有没有人曾经处理过这个问题?