int partition(int *arr, int i, int j)
{
int tmp = arr[i];
while (i < j)
{
while(i<j && arr[j] >= tmp)
{
--j;
}
arr[i] = arr[j];
while (i<j && arr[i] <= tmp)
{
++i;
}
arr[j] = arr[i];
}
arr[i] = tmp;
return i;
}
int quicksort(int *arr, int i, int j)
{
if (i<j)
{
int mid = partition(arr, i, j);
quicksort(arr, i, mid-1);
quicksort(arr, mid+1, j);
return 0;
}
else
{
return -1;
}
}
int main(int argc, char* argv[])
{
int a[] = {4, 5, 7, 3, 1, 9, 2};
quicksort(a, 0 , 6);
for(int i = 0; i < 7; ++i)
{
cout << a[i] << " ";
}
cout << endl;
return 0;
}
快速排序c++语言代码
最新推荐文章于 2025-02-27 21:11:28 发布