按照算法导论,写了一下快速排序
void swap(int &a, int &b)
{
int temp = a;
a = b;
b = temp;
}
int partition(int array[], int low, int high)
{
int key = array[high];//选取参考点
int i = low -1;
for(int j = low; j <= high - 1;j++)
{
if(array[j] <= key)
{
i++;
swap(array[i], array[j]);
}
}
swap(array[i+1], array[high]);
return i + 1;
}
void quicksort(int array[], int low, int high)
{
if(low < high)
{
int q = partition(array, low, high);
quicksort(array, low, q - 1);
quicksort(array, q + 1, high);
}
}
int main(int argc, char* agrv)
{
int array[] = {9, 7, 8, 10, 68, 24, 39, 25, 27, 100};
quicksort(array, 0, sizeof(array)/4 - 1);
return 0;
}