演算法導論中的7.1-1題
我對遞回的整個程序還是不太清楚。。。

圖片上第三行之后就不太清楚了。。。
代碼如下
#include <iostream>
#include <stdlib.h>
using namespace std;
int partition(int *a, int l, int r)
{
int mid = a[r];
int i = l - 1;
for(int j = l; j < r; j++)
{
if(a[j] < mid)
{
i++;
swap(a[i],a[j]);
}
}
swap(a[i+1],a[r]);
for(int k = 0; k < 12; k++)
{
cout << a[k] << " ";
}
return i + 1;
}
void quick_sort(int *a, int l, int r)
{
int mid;
if(l < r)
{
mid = partition(a,l,r);
cout << endl;
quick_sort(a,l,mid - 1);
quick_sort(a,mid,r);
}
}
int main()
{
int a[12] = {13,19,9,5,12,8,7,4,21,2,6,11};
cout << "qsort: " << endl;
quick_sort(a,0,11);
for(int i = 0; i < 12; i++)
{
cout << a[i] << " ";
}
system("pause");
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/62985.html
標籤:基礎類
下一篇:MATLAB轉C中遇到問題,求解
