我写了一个可以工作的快速排序程序。我需要包括一个计算迭代次数的计数器。在课堂上,我们讨论了算法并得出结论,元素比较是基本操作。但是,我不知道把柜台放在哪里。我似乎无法获得正确的输出。我已经包含了我的代码,谢谢!
void partition( vector<int> & S, int low, int high, int & pivotpoint )
{
vector<int> U;
int pivotitem = S.at(low);
int j = low;
int i;
for( i = low + 1; i <= high; i++)
if( S.at(i) < pivotitem)
{
j++;
swap( S[i], S[j] );
}
pivotpoint = j;
swap( S[low], S[pivotpoint] );
}
void quicksort( vector<int> & S, int low, int high, int &basic_ops )
{
int pivotpoint = low;
if( high > low)
{
partition( S, low, high, pivotpoint );
quicksort( S, low, pivotpoint -1, basic_ops );
quicksort( S, pivotpoint + 1, high, basic_ops );
}
}